我有这样的查询:
select distinct po_no, rescan_status
from T_PoHeader
order by po_no
我的输出是这样的:
po_no rescan_status
---------------------
P-01 True
P-02 True
p-03 False
p-04 False
p-04 True
如果我使用po_no
关键字,我的distinct
会显示重复项。我想只显示不同的po_no
。
答案 0 :(得分:1)
distinct
关键字适用于您选择的所有列。因为您选择了' rescan_status '对于同一个' po_no ' po_no '有两个不同的'组合
删除' rescan_status '只获得区别' po_no '。
答案 1 :(得分:1)
您的结果对我来说很好看。我没有看到任何重复的行。
推测可能是您希望po_no
在每一行都是唯一的。如果是,请使用聚合和聚合函数:
select po_no, max(rescan_status) as rescan_status
from T_PoHeader
group by po_no
order by po_no;
答案 2 :(得分:0)
;with cte(po_no,rescan_status)
AS
(
SELECT 'P-01','True' UNION ALL
SELECT 'P-02','True' UNION ALL
SELECT 'p-03','False' UNION ALL
SELECT 'p-04','False' UNION ALL
SELECT 'p-04','True'
)
SELECT po_no,rescan_status From
(
select po_no,rescan_status ,ROW_NUMBER()OVER(Partition By po_no order by po_no) Seq from cte
)Dt
where Dt.Seq=1