sql-server - 在 select 的 SQL UNION 之后替换 NULL 列
问题描述
我正在使用 aUNION
来组合两个 select 语句的结果。在返回的结果中,需要填写 NULL 值:
SELECT OrderNumber, OrderName
FROM tblOrder
WHERE OrderStatus ='New'
UNION
SELECT OrderNumber, OrderName
FROM tblOrderHistory
WHERE OrderStatus ='New'
ORDER BY OrderNumber, OrderName
结果:
OrderNumber OrderName
---------------------
A001 abc
A001 abc
A001 NULL
A001 NULL
A001 NULL
B002 xyz
B002 NULL
C003 abc
我的预期结果:
OrderNumber OrderName
---------------------
A001 abc
A001 abc
A001 abc
A001 abc
B002 xyz
B002 xyz
C003 abc
如何NULL
通过匹配订单号来填充值,行中tblOrder
的值始终是。OrderName
tblOrderHistory
NULL
解决方案
对于快速解决方案,您可以考虑MAX()
在此处用作分析函数:
WITH cte AS (
SELECT OrderNumber, OrderName FROM tblOrder WHERE OrderStatus = 'New'
UNION ALL
SELECT OrderNumber, OrderName FROM tblOrderHistory WHERE OrderStatus = 'New'
)
SELECT
OrderNumber,
MAX(OrderName) OVER (PARTITION BY OrderNumber) OrderName
FROM cte
ORDER BY
OrderNumber,
OrderName;
推荐阅读
- javascript - JS events listeners memory consumption
- sql - “Operation must use an updateable query” error in MS Access
- haskell - Conal Elloit 的 FRP 中 Reactive 的 Monad 和 Applicative 实例
- excel - 从 .xlsx 文件中提取第一列(所有行)的内容并将其替换为从每列中提取的信息
- powershell - PowerShell exact column comparison
- c# - asp 表单的操作过滤器
- java - 将元素添加到 java 中的实体列表或从本地查询 hibernate 创建它
- postgresql - POSTGRESQL:如何将日期转换为整数?
- amazon-web-services - 红移:500310 无效操作
- python - 我有 skimage 版本 0.12。我想专门下载0.14版本。我怎么做?