选择CASE和字段名称

时间:2013-12-11 21:45:38

标签: sql-server tsql sas

您可以使用case语句动态创建列名吗?比如(从上一篇文章我看到的就是你可以看到我先看了一下);

SELECT   
    ProductNumber, Name, 
    CASE 
       WHEN Name = 'Gary' THEN 1 
       ELSE 0 
    End AS ProductNumber + 'Mfg item - not for resale'
FROM 
    Production.Product;

我知道这个例子看起来很奇怪,但是我有一个项目,根据我在CASE语句中使用的标准,我需要将行中包含的几条信息转换为列。

1 个答案:

答案 0 :(得分:1)

这是不可能的,因为在您的理论答案中,每行都有不同的列名。在基于集合的解决方案中,您无法执行此类操作。

只有在某种基于游标的解决方案中使用动态SQL,并且每个结果集都有唯一的表格(如问题评论中所述),如果你这样做,你做错了什么,那么它只会起作用。 p>

无论你做什么,你可能最好将所需的列名称作为一个名为[ColumnName]的列返回,然后在你正在使用它的任何项目中对其进行转换。