如何在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]
感谢。
答案 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;