在查询中更改Select语句

时间:2011-08-03 02:27:30

标签: sql-server-2008 null

我有一个表(来自其他人的存储过程的结果),并且它以

的形式返回表##tableT
1      2    3    4    5     6
----------------------------------------------
467    116  480  477  491   697
NULL   19   481  113  488   466
123    4354 477  466  55    480
NULL   NULL NULL 527  83    629
45     34   NULL  5   483   483

正如你所看到它有NULLS,最重要的是列的名称是数字,所以当我这样做时

SELECT coalesce(1, -1) as att1, coalesce(2, -1) as att2,....,coalesce(6, -1) as att6 FROM [dbm].[dbo].[##tableT];

我明白了:

1   2   3   4   5   6
1   2   3   4   5   6
1   2   3   4   5   6
1   2   3   4   5   6
1   2   3   4   5   6

而不是:

1      2    3    4    5     6
----------------------------------------------
467    116  480  477  491   697
-1     19   481  113  488   466
123    4354 477  466  55    480
-1     -1   -1   527  83    629
45     34   -1   5   483    483

2 个答案:

答案 0 :(得分:2)

SELECT ISNULL([1], -1) as att1, ISNULL([2], -1) as att2,....,ISNULL([6], -1) as att6 FROM [dbm].[dbo].[##tableT];

答案 1 :(得分:0)

和作为变体

SELECT 
CASE WHEN [1] IS NULL THEN -1 ELSE [1] END,
CASE WHEN [2] IS NULL THEN -1 ELSE [2] END,
...
FROM [dbm].[dbo].[##tableT];