Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择多个列时,Distinct关键字不起作用_Sql_Sql Server - Fatal编程技术网

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
将显示重复项。我只想显示distinct
po_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应该显示什么呢?