You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server查询表数据时如何解压COMPRESS压缩的表单模板字段

实现SQL查询解压COMPRESS压缩的表单模板

场景说明

存储表单信息的Forms表插入模板时,通过COMPRESS函数对HTML模板内容压缩后存储,插入操作参考代码如下:

DECLARE @TemplateCompressed varbinary(MAX);
SET @TemplateCompressed = COMPRESS(N'<style></style><body><h1>Application Form</h1>...');
INSERT INTO Forms (Title,Template) VALUES ('Application Form',@TemplateCompressed);
  • 表结构:Forms表共3个字段,分别为FormId(表单ID)、Title(表单标题)、Template(压缩存储的模板内容,类型为varbinary(MAX),存储0x开头的Gzip压缩二进制数据)
  • 现有示例数据:
    • FormId=1:Title为Account Opening Form,Template为对应压缩二进制值
    • FormId=2:Title为Application Form,Template为对应压缩二进制值
  • 查询需求:返回结果集字段结构和原表保持一致,仅将Template字段的压缩二进制内容直接解压为可读的HTML格式明文。

实现语句

SQL Server中COMPRESS函数默认使用GZip算法压缩数据,配套使用DECOMPRESS函数即可完成解压。注意解压后默认返回二进制结果,需要匹配插入时的原始数据类型做显式转换——本场景插入时传入的是带N前缀的Unicode字符串,因此转换为NVARCHAR(MAX)即可得到无乱码的正确明文。

SELECT
    FormId,
    Title,
    CAST(DECOMPRESS(Template) AS NVARCHAR(MAX)) AS Template
FROM Forms;

补充说明:如果后续插入模板时使用的是非Unicode的VARCHAR类型,只需要将上述语句中的类型转换逻辑改为CAST(DECOMPRESS(Template) AS VARCHAR(MAX))即可匹配。

内容的提问来源于stack exchange,提问作者MB_18

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 03:48:09