带有别名的SQL CASE

时间:2017-04-27 22:07:32

标签: sql vb.net

我正在尝试根据case语句的结果更改列名,这是可能的,我该怎么做...这是我到目前为止所做的但是我还不够好。 / p>

如果数据是数字,我想要将VALUE的列名更改为NUMVALUE,如果数据不是数字,则希望更改为ALNVALUE。基本上使三列数据表成为四列数据表。这可能吗?

CASE WHEN ISNUMERIC([Value])=1 THEN SELECT [VALUE] AS [NUMVALUE] ELSE SELECT [VALUE] AS [ALNVALUE] END

2 个答案:

答案 0 :(得分:0)

不,这是不可能的。

考虑尝试使用结果集时遇到的问题。每当您尝试访问数据时,您都会收到一个例外情况,指出无法找到该列或类似的。

Dim data = Results["ColumnName"]会变得不可靠。

您需要为每个列创建一个单独的列,或者将它们全部放在同一个名称下。

答案 1 :(得分:-1)

您需要两个CASE =两列:

SELECT
    CASE WHEN ISNUMERIC([Value])= 1 THEN [VALUE] END AS [NUMVALUE],
    CASE WHEN ISNUMERIC([Value])<>1 THEN [VALUE] END AS [ALNVALUE],
...
FROM myTable