2014-11-12 4 views
1

Можно ли использовать имена переменных в качестве имени столбца в sql-соединении без использования динамического запроса?использовать переменную как имя столбца в sql

Я хочу использовать его, как показано ниже.

DECLARE @PT_CONST VARCHAR(MAX)

SELECT * FROM TBL T WHERE [email protected]_CONST='VAL'

+0

вы можете сделать так, если вы можете SELECT * FROM ТПС T WHERE coulmn_nmae = @PT_CONST –

ответ

1

Непосредственно нет. Если вы знаете, что ваше имя столбца может быть один из предопределенного набора, то вы могли бы использовать что-то вроде

... WHERE CASE @PT_CONST WHEN 'Col1' THEN Col1 WHEN 'Col2' THEN Col2 ... END = 'VAL' 
+0

не знаю столбец имена..так ваше решение не выполнимо – Rohaan

+2

Тогда у вас нет решения без динамического SQL. Обработчик запросов SQL Server должен знать имена столбцов во время компиляции, нет никакого способа обойти это. Вы можете проверить наличие столбцов перед построением динамического SQL, чтобы избежать ошибок, конечно. – Arvo

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