gpt4 book ai didi

sql - 删除 SQL Server 中的第二行或相同的数字

转载 作者:行者123 更新时间:2023-11-30 23:57:42 25 4
gpt4 key购买 nike

我正在使用 SQL Server。我使用了这段代码:

 select distinct A.CustomerNo, A.INV_Nr, B.Code, A.Price 
from INVOICE A.
INVOICE_LINE B
where
A.IVC_Nr = B.IVC_Nr

输出是这样的:

| CustomerNo   |    INV_Nr   |   Code   | Price |
=================================================
| 1100021 | 500897 | 1404 | 2500 |
| 1100021 | 500897 | 1403 | 2500 |
| 1100022 | 500898 | 1405 | 3500 |
| 1100023 | 500899 | 1405 | 3000 |
| 1100023 | 500899 | 1403 | 3000 |

我怎样才能删除第二行,只得到相同数字的第一行,应该是这样的:

| CustomerNo   |    INV_Nr   |   Code   | Price |
=================================================
| 1100021 | 500897 | 1404 | 2500 |
| 1100022 | 500898 | 1405 | 3500 |
| 1100023 | 500899 | 1405 | 3000 |

谢谢,

最佳答案

由于问题出在 SQL Server 2005+ 标签上,您可以在此使用 Common Table ExpressionWindow Function

WITH recordsList
AS
(
SELECT A.CustomerNo, A.INV_Nr, B.Code, A.Price ,
ROW_NUMBER() OVER (PARTITION BY A.CustomerNo
ORDER BY B.Code DESC) rn
FROM INVOICE A
INNER JOIN INVOICE_LINE B
ON A.IVC_Nr = B.IVC_Nr
)
SELECT CustomerNo, INV_Nr, Code, Price
FROM recordsList
WHERE rn = 1

关于sql - 删除 SQL Server 中的第二行或相同的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14535110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com