SQL апострофы - PullRequest
       7

SQL апострофы

0 голосов
/ 15 декабря 2011

Как я могу создать строку в SQL, которая содержит пустую строку: ''

Я пробовал это:

ОБЪЯВИТЬ @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 ]

3 голосов
/ 15 декабря 2011

Две одинарные кавычки в строке в SQL обрабатываются как одиночные экранированные одинарные кавычки, поэтому для генерации двух в выходных данных необходимо ввести 4 во входные данные, например:

SELECT @TEST = 'SELECT '''' ['+ @COL1 + '], '''' [' + @COL2+ ']'
1 голос
/ 15 декабря 2011

Ну, быстрый ответ: '''' (удвоить их)

Например, SELECT 'XX''''XX'XX''XX

Я оставлю это на этом, потому что "почемуне хочешь ли ты сделать это? »- это заставляет меня сильно нервничать.

0 голосов
/ 15 декабря 2011

Вам не нужно объединять строки.

SELECT @COL1, @COL2

должно быть достаточно.Параметры @ COL1 и @ COL2 будут автоматически заменены фактическими значениями.

Однако вы не можете объявить имена столбцов динамически, как это.Параметры на стенде для значений.Обычно вы делаете что-то вроде этого:

SELECT [Name] FROM mytable WHERE ID=@id 

Если вы намерены динамически изменять имена столбцов, тогда вы не будете использовать апострофы вообще:

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