Изменить оператор Select в запросе - PullRequest
0 голосов
/ 03 августа 2011

У меня есть таблица (результат хранимой процедуры от кого-то другого), и она переустанавливает таблицу ##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 ]

2 голосов
/ 03 августа 2011

попробуй

SELECT ISNULL([1], -1) as att1, ISNULL([2], -1) as att2,....,ISNULL([6], -1) as att6 FROM [dbm].[dbo].[##tableT];
0 голосов
/ 03 августа 2011

и как вариант

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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...