0

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

我试过这个:

声明 @TEST NVARCHAR(50)、@COL1 NVARCHAR(50)、@COL2 NVARCHAR(50) 选择 @COL1 = 'A'、@COL2 = 'B'

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

选择@测试

但字符串最终看起来像:

选择'[A],'[B]

当它需要看起来像:

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

谢谢。

4

3 回答 3

3

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

SELECT @TEST = 'SELECT '''' ['+ @COL1 + '], '''' [' + @COL2+ ']'
于 2011-12-15T18:32:23.180 回答
1

好吧,快速的答案是:(''''加倍)

例如SELECT 'XX''''XX'XX''XX

我会留在那里,因为“你为什么要这样做‽”部分让我很紧张。

于 2011-12-15T18:32:56.830 回答
0

您不需要连接字符串。

SELECT @COL1, @COL2

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

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

SELECT [Name] FROM mytable WHERE ID=@id 

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

SET @sql = 'SELECT [' + @COL1 + '], [' + @COL2 + ' FROM mytable';
EXECUTE sp_executesql @sql;
于 2011-12-15T18:34:46.397 回答