SQL撇号

SQL撇号,sql,apostrophe,Sql,Apostrophe,如何在SQL中生成包含空字符串的字符串:“” 我试过这个: 声明@TEST NVARCHAR(50)、@COL1 NVARCHAR(50)、@COL2 NVARCHAR(50) 选择@COL1='A',@COL2='B' 选择@TEST='选择'['+@COL1+'],''['+@COL2+']' 选择@TEST 但是字符串最终看起来像: 选择“[A]”、“[B] 当它需要看起来像: 选择“”[A]、“”[B] 谢谢。SQL中字符串中的两个单引号被视为单转义单引号,因此为了在输出中生成两个单引号

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

我试过这个:

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

选择@TEST='选择'['+@COL1+'],''['+@COL2+']'

选择@TEST

但是字符串最终看起来像:

选择“[A]”、“[B]

当它需要看起来像:

选择“”[A]、“”[B]


谢谢。

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

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

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

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

好的,快速的答案是:
''”
(将它们加倍)

e、 g.
选择“XX”“XX”
→ <代码>XX''XX


我就不说了,因为“你为什么要那样做”这一部分让我很紧张。

好吧,快速的回答是:
''”
(把它们加倍)

e、 g.
选择“XX”“XX”
→ <代码>XX''XX


我就到此为止,因为“为什么要那样做?”“这部分让我非常紧张。

不需要串联字符串

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

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

SELECT [Name] FROM mytable WHERE ID=@id 
如果要动态更改列名,则根本不使用撇号:

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

您不需要连接字符串

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

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

SELECT [Name] FROM mytable WHERE ID=@id 
如果要动态更改列名,则根本不使用撇号:

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

你需要了解:1。二,。你需要了解:1。二,。谢谢,但我正在尝试生成一个SQL字符串,它将在执行时选择一个空字符串以及列别名(参数)。我不想只选择参数值。谢谢,但我正在尝试生成一个SQL字符串,它将在执行时选择一个空字符串以及列别名(参数)。我不想只选择参数值。