2013-11-02 6 views
0

У меня есть SQL скрипт, как показано ниже с некоторыми переменнымиSQL строка конкатенации запрос

declare @endDate datetime 
declare @whereClause nvarchar(MAX) 

set @whereClause = ' where endDate < ''' + @endDate + '''' 

А вот SQL оператор выбора:

select * form TableName 

То, что я хочу сделать, это присоединиться к @whereClause и тому выберите результат так, чтобы результат был

select * from TableNamewhere endDate < ''2013/11/2'' 

Я попытался использовать приведенный ниже оператор для присоединения к e две строки, но я получаю ошибку

Неправильный синтаксис рядом с '+'.

Что случилось с приведенным ниже сценарием? Или как я могу присоединиться к двум строкам?

select * from TableName + @whereClause 

ответ

2

Вы можете сделать это, используя две переменные varchar; один для SELECT и один для предложения WHERE.

т.е .:

DECLARE @select AS nvarchar(max) 
SET @select = 'SELECT * FROM TableName' 

SET @select = @select + @whereClause 
+0

Но как я могу выполнить @Select NVARCHAR переменную? – User2012384

+0

Вы можете использовать sp_executesql для этого: 'EXEC sp_executesql @ select' Обратите внимание, что вы должны будете предоставить действительную дату заявления на работу, и что вам придется бросить дату в качестве значения VARCHAR. – SchmitzIT

Смежные вопросы