Sql 为另一列的每个唯一值选择具有一列唯一值的行
输入: 项目|订单|编号|名称 ------------------------- 123 | 100 |乔 123 | 101 |鲍勃 123 | 101 |鲍勃 124 | 101 |鲍勃 456 | 102 |鲍勃 期望输出: ITEM_NO | ORDER_NO | NAME ------------------------- 123 | 100 | JOE 123 | 101 | BOB 123 | 101 | BOB 124 | 101 | BOB 456 | 102 | BOB 项目|订单|编号|名称 ------------------------- 123 | 100 |乔 123 | 101 |鲍勃 124 | 101 |鲍勃 456 | 102 |鲍勃Sql 为另一列的每个唯一值选择具有一列唯一值的行,sql,sql-server,Sql,Sql Server,输入: 项目|订单|编号|名称 ------------------------- 123 | 100 |乔 123 | 101 |鲍勃 123 | 101 |鲍勃 124 | 101 |鲍勃 456 | 102 |鲍勃 期望输出: ITEM_NO | ORDER_NO | NAME ------------------------- 123 | 100 | JOE 123 | 101 | BOB 123 | 101 | BOB 124
基本上,我需要为每个唯一订单选择具有唯一项目编号的所有行。尝试
不同的
选择
ITEM_NO | ORDER_NO | NAME
-------------------------
123 | 100 | JOE
123 | 101 | BOB
124 | 101 | BOB
456 | 102 | BOB
选择不同的项目号、订单号、名称
从…起
或
选择I.ITEM\u NO、I.ORDER\u NO、I.NAME
FROM(选择不同的项目号、订单号FROM)作为X
加入I.ITEM_NO=X.ITEM_NO和I.ORDER_NO=X.ORDER_NO
提示:选择DISTINCT
。如果我知道如何以这种方式使用SELECT DISTINCT来完成我需要的任务,我就不会在这里了。:)@请尝试给出的答案
SELECT DISTINCT ITEM_NO, ORDER_NO, NAME
FROM <TABLE_NAME>
SELECT I.ITEM_NO, I.ORDER_NO, I.NAME
FROM (SELECT DISTINCT ITEM_NO, ORDER_NO FROM <TABLE_NAME>) AS X
JOIN <TABLE_NAME> I ON I.ITEM_NO = X.ITEM_NO AND I.ORDER_NO = x.ORDER_NO