即使SQL Server没有为它们返回结果,如何仍将所有输入的原始数据保留在结果中?

问题描述 投票:0回答:1

我正在运行一个简单查询,使用ProductBarcode的列表从表ftfuk.ProductDimension_UK中提取所有信息,如下所示:

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 Server2014。通过任何方法都可以正常工作?

sql-server sql-server-2014
1个回答
1
投票

您可以使用values构造并执行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;
© www.soinside.com 2019 - 2024. All rights reserved.