Имя столбца как переменная в select - PullRequest
2 голосов
/ 21 июня 2011

Я хочу добиться такой функциональности, как это сделать.

DECLARE @filterByDate VARCHAR(20)

IF(@filterByDate = 'expectedDate')
   SET @filterByDate = 'ExpectedStartDate'
ELSE
   SET @filterByDate = 'ActualStartDate'

SELECT @filterByDate AS Date
FROM TableName

Спасибо.

Ответы [ 2 ]

4 голосов
/ 21 июня 2011

Стандарт SQL, работает на большинстве СУБД

SELECT CASE @filterByDate
         WHEN 'ExpectedStartDate' THEN ExpectedStartDate
         WHEN 'ActualStartDate' THEN ActualStartDate
         ELSE NULL
       END as mydate
       --optional , @filterByDate AS ColumnName
FROM
   MyTable
1 голос
/ 21 июня 2011
 DECLARE @filterByDate VARCHAR(20)

 IF(@filterByDate = 'expectedDate')
    SET @filterByDate = 'ExpectedStartDate'
 ELSE
    SET @filterByDate = 'ActualStartDate'

 Declare @Sql varchar(max)

 SET @SQL = 'SELECT @Filter AS DATE FROM TableName'
 DECLARE @ParmDefinition nVARCHAR(20)
 SET @ParmDefinition = N'@filter nvarchar(20)'
 exec sp_executesql @SQL, @ParmDefinition, @Filter = @filterByDate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...