即使 SQL 服务器 returns 没有结果,如何保持所有输入的原始数据出现在结果中?

How to keep all the original data entered present in result even though SQL Server returns no result for them?

我是 运行 使用 ProductBarcode 列表从 table 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 server 2014。有什么方法可以让它工作吗?

您可以使用 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;