Объединить столбец + подвыбор, даже если подвыбор не возвращает результатов - PullRequest
0 голосов
/ 21 мая 2019

Как объединить столбец и подвыбор, даже если этот подвыбор не дает результатов?

В приведенном ниже тупом примере, когда подвыбор не возвращает результатов, результат возвращает NULL, даже когда Column_a не ноль.

select a.Column_a + 
    (select top 1 b.Column_b from Table_b b where b.Id_Table_a = a.Id)
from Table_a a

Как этого избежать?

Ответы [ 3 ]

1 голос
/ 21 мая 2019

Вы можете использовать ISNULL (при условии, что все значения являются строками):

select a.Column_a + 
    ISNULL((select top 1 b.Column_b from Table_b b where b.Id_Table_a = a.Id),'')
from Table_a a
1 голос
/ 21 мая 2019

В SQL SERVER, если вы объединяете или добавляете две строки вместе, где одна строка равна NULL, результат возвращает NULL, как показано ниже -

SELECT 'Test' + NULL
-- The output is NULL

Так что вы должны обращаться с NULL, как показано ниже -

SELECT 'Test' + ISNULL( NULL,'')
-- This will return 'Test'
1 голос
/ 21 мая 2019

Вы можете решить эту проблему, добавив isnull():

select a.Column_a + 
    isnull((select top 1 b.Column_b from Table_b b where b.Id_Table_a = a.Id), '')
from Table_a a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...