select
(Case Remark01
When 'l1' then type1
when 'l2' then type2
end) AS [?] --Remark .....want to switch name in here
from mytable
Пример ....
select
(Case level
When 'l1' then type1 ('l1' mean check constant string)
when 'l2' then type2(('l2' mean check constant string))
end) AS (Case when 'l1' then [type01] Else [type02])
from mytable
select level,type1,type2 from mytable
Я использую две программы mytable
одна программа хочет отображать меню только type1 only
одна программа хочет отображать только меню type2 только
Я использую один вид, используя две программы ..
Предположим, в вашем наборе результатов есть строки обоих типов, как тогда сервер sql назовет столбец?


Вы хотите динамически назвать столбец в строке? К сожалению, это невозможно.
Однако, если у вас ровно одна строка, вы можете использовать динамический 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
когда этот оператор выполняет, мы можем получить два столбца ... Мне нужен один столбец ... из-за ... моей программы, использующей имя столбца таблицы, я могу получить значение данных таблицы .... но я не могу получить имя столбца таблицы ... это моя проблема
Вы не можете изменить имя столбца динамически
Нет смысла менять имя столбца на строку. Сами строки не имеют собственных имен столбцов, в отличие от содержащего их набора данных.
Если, с другой стороны, вам нужно изменить имя столбца на основе вводимых данных, то проще всего будет просто дважды выбрать данные под двумя именами. НАПРИМЕР:
SELECT col1 AS alias1,
col1 AS alias2
FROM myTable
Вы можете более четко выразить это? Я не понял того, что ты хочешь сделать.