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

SQL Server中如何在变量中包含两个单引号?现有代码输出不符合预期的解决求助

解决SQL Server变量中添加双单引号的问题

你的问题出在对QUOTENAME函数的用法理解上——它的作用是给整个字符串包裹指定的分隔符(并转义内部的分隔符),而不是在目标字符串前后添加额外的单引号。要得到你想要的'%''NM''%'格式,其实用直接拼接的方式更简单直观,这里给你两种可行的方案:

方案1:直接字符串拼接(最常用)

在SQL Server中,字符串里的单引号需要用另一个单引号转义,也就是说两个单引号代表一个实际的单引号。所以要生成两个实际的单引号,你需要写四个连续的单引号。代码如下:

SET @SearchStr2 = UPPER('%' + '''''' + @SearchStr + '''''' + '%') COLLATE SQL_Latin1_General_CP1_CS_AS;

举个例子,如果@SearchStr = 'NM',这段代码会拼接成:% + '' + NM + '' + %,最终得到你期望的'%''NM''%'。

方案2:用CHAR(39)替代单引号(更清晰)

如果你觉得太多单引号容易混淆,可以用ASCII码来表示单引号(单引号的ASCII码是39),用CHAR(39)生成单个单引号,代码可读性会更好:

SET @SearchStr2 = UPPER('%' + CHAR(39) + CHAR(39) + @SearchStr + CHAR(39) + CHAR(39) + '%') COLLATE SQL_Latin1_General_CP1_CS_AS;

这个方案的逻辑和上面完全一致,只是把转义的单引号换成了CHAR(39),结果同样是'%''NM''%'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 15:17:36