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
一个程序只想显示菜单只有type2
我使用两个程序使用一个视图..
答案 0 :(得分:1)
您想要动态命名列每行吗?不幸的是,这不可能做到。
但是,如果您只有一行,则可以使用动态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
答案 1 :(得分:1)
每行切换一列的名称是没有意义的。行本身没有自己的列名,包含数据集。
另一方面,如果您需要根据输入的数据更改列的名称,那么只需在两个名称下选择两次数据将是最简单的。 EG:
SELECT col1 AS alias1,
col1 AS alias2
FROM myTable