即使 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;
我是 运行 使用 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;