Как сохранить все введенные исходные данные в результатах, даже если SQL Сервер не возвращает результатов для них? - PullRequest
0 голосов
/ 11 февраля 2020

Я выполняю простой запрос на извлечение всей информации из таблицы ftfuk.ProductDimension_UK, используя список ProductBarcode следующим образом:

SELECT *
FROM ftfuk.ProductDimension_UK
WHERE ProductBarcode IN (
        '0000000026222'
        ,'25050097'
        ,'25050103'
        ,'111122'
        ,'3333444'
        )

Результат выглядит так:

ProductBarcode  ProductStatus
-----------------------------
0000000026222   Active

И, в конечном итоге, я хочу, чтобы мой результат выглядел следующим образом:

ProductBarcode  ProductStatus
-----------------------------
0000000026222   Active
25050097         
25050103
111122
3333444

Я использую SQL сервер 2014. Есть ли способ заставить это работать?

1 Ответ

1 голос
/ 11 февраля 2020

Вы можете использовать values construct & do left join:

select t.ProductBarcode, coalesce(uk.ProductStatus, '') as ProductStatus
from ( values ('0000000026222'), . . , ('3333444') 
     ) t(ProductBarcode) left join
     ftfuk.ProductDimension_UK uk
     on uk.ProductBarcode = t.ProductBarcode;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...