Sql 选择多个列时,Distinct关键字不起作用
我有这样一个问题:Sql 选择多个列时,Distinct关键字不起作用,sql,sql-server,Sql,Sql Server,我有这样一个问题: 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 这里,如果我使用distinct关键字,我的po\u no将显示重复项。我只想显示distinct
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
这里,如果我使用
distinct
关键字,我的po\u no
将显示重复项。我只想显示distinctpo_no
关键字distinct
适用于您选择的所有列。由于您选择了“重新扫描状态”,对于相同的“采购订单号”有一行为真,一行为假,因此有两个“不同”的组合
删除“rescan\u status”以仅获取不同的“po\u no”。在您选择的所有列上使用
Distinct
关键字。由于您选择了“重新扫描状态”,对于相同的“采购订单号”有一行为真,一行为假,因此有两个“不同”的组合
删除“重新扫描状态”,只获得不同的“订单号”。我觉得您的结果很好。我没有看到任何重复的行 推测可能是您希望
po_no
在每一行上都是唯一的。如果是,请使用聚合和聚合函数:
select po_no, max(rescan_status) as rescan_status
from T_PoHeader
group by po_no
order by po_no;
我觉得你的成绩不错。我没有看到任何重复的行 推测可能是您希望
po_no
在每一行上都是唯一的。如果是,请使用聚合和聚合函数:
select po_no, max(rescan_status) as rescan_status
from T_PoHeader
group by po_no
order by po_no;
所以你会得到“p-04”的副本,因为它是一个独特的组合。如果删除“重新扫描状态”,您将只看到一个。因此,您将获得“p-04”的副本,因为它是一个独特的组合。如果删除“重新扫描状态”,您将只看到一列。这两列已经不同。请编辑您的问题并显示您想要的结果。你的结果在我看来很好。那么p-04应该显示什么呢?这两列已经不同了。编辑你的问题并显示你想要的结果。我觉得你的结果很好。那么p-04应该显示什么呢?