我有一个表(来自其他人的存储过程的结果),并且它以
的形式返回表##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
答案 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];