SQL撇号

时间:2011-12-15 18:30:22

标签: sql apostrophe

如何在SQL中生成包含空字符串的字符串:''

我试过了:

  

DECLARE @TEST NVARCHAR(50),@ COL1 NVARCHAR(50),@ COL2 NVARCHAR(50)   SELECT @ COL1 ='A',@ COL2 ='B'

     

SELECT @TEST ='SELECT''['+ @ COL1 +'],''['+ @ COL2 +']'

     

SELECT @TEST

但字符串最终看起来像:

  

选择'[A],'[B]

当需要看起来像:

  

选择''[A],''[B]

感谢。

3 个答案:

答案 0 :(得分:3)

SQL中字符串中的两个单引号被视为单个转义单引号,因此为了在输出中生成两个,您需要在输入中放入4,如下所示:

SELECT @TEST = 'SELECT '''' ['+ @COL1 + '], '''' [' + @COL2+ ']'

答案 1 :(得分:1)

嗯,快速回答是:''''(加倍)

e.g。 SELECT 'XX''''XX'XX''XX

我会把它留在那,因为“你为什么要这样做?”部分让我非常紧张。

答案 2 :(得分:0)

您不需要连接字符串。

SELECT @COL1, @COL2

应该足够了。参数@ COL1和@ COL2将自动替换为实际值。

但是,您无法像这样动态声明列名。参数代表值。通常你会做这样的事情:

SELECT [Name] FROM mytable WHERE ID=@id 

如果您打算动态更改列名,那么根本不会使用撇号:

SET @sql = 'SELECT [' + @COL1 + '], [' + @COL2 + ' FROM mytable';
EXECUTE sp_executesql @sql;