SQL Server, можно ли использовать оператор T-SQL как переменную?Или что-то типа того - PullRequest
2 голосов
/ 07 июля 2010

Что я хочу сделать, это что-то вроде этого

DECLARE @operator nvarchar;
SET @operator = 'AND'

SELECT * FROM MyTable
WHERE first_column = "1" @operator second_columnt = "2"

Есть ли способ реализовать такую ​​логику?

1 Ответ

8 голосов
/ 07 июля 2010

Вы можете сделать это, используя динамический sql:

declare @query varchar(max)
set @query = 'select * from MyTable where first_column = ''1'' ' +
    @operator + ' second_column = ''2'''
exec (@query)

Иногда, когда логика утверждения достаточна, например:

select  *
from    MyTable
where   (operator = 'AND' and first_column = '1' and second_column = '2')
        or (operator = 'OR' and (first_column = '1' or second_column = '2'))
...