Как переключить SQL-2005 Выберите вариант, когда T-SQL именования? - PullRequest
0 голосов
/ 23 декабря 2008
select 
(Case Remark01
When 'l1' then type1
when 'l2' then type2
end) AS [?] --Remark .....want to switch name in here
from mytable

Пример ....

<code>select 
(Case level
When 'l1' then type1 ('l1' mean check constant string)
when 'l2' then type2(('l2' mean check constant string))
end) AS <b>(Case when 'l1' then [type01] Else [type02])</b>
from mytable
select level,type1,type2 from mytable
</code>

Я использую две программы этого mytable
одна программа хочет показать меню только type1 только
одна программа хочет показать меню только type2 только
Я использую один вид, используя две программы ..

Ответы [ 2 ]

1 голос
/ 23 декабря 2008

Нет смысла переключать имя столбца в строке. Сами строки не имеют собственных имен столбцов, как у содержащегося набора данных.

Если, с другой стороны, вам нужно изменить имя столбца на основе вводимых данных, проще всего будет выбрать данные дважды под двумя именами. EG:

SELECT  col1 AS alias1,
        col1 AS alias2
FROM    myTable
1 голос
/ 23 декабря 2008

Вы хотите динамически назвать столбец в строке ? К сожалению, это не может быть сделано. Однако, если у вас ровно одна строка, вы можете использовать динамический SQL EXEC (@sqlstring)

Но тогда как ваш клиент узнает, какое имя столбца ожидать?

Вне динамического SQL или для более чем одной строки вы можете передать имя в виде другого столбца ...

select
    Case level
      When 'l1' then type1
      when 'l2' then type2
   end AS columnvalue,
    Case level
      When 'l1' then type1
      when 'l2' then type2
   end AS outputcolumnname,
from
   mytable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...