我有一张如下所示的桌子
日期 | 帐单号 | 类别 |
---|---|---|
2024年9月30日 | 1 | VSS |
2024年10月1日 | 2 | RSS |
2024年1月9日 | 3 | VSS |
2024年10月1日 | 3 | RSS |
我需要像下面这样的新类别
日期 | 帐单号 | 类别 | 新类别 |
---|---|---|---|
2024年9月30日 | 1 | VSS | VSS |
2024年10月1日 | 2 | RSS | RSS |
2024年10月1日 | 3 | VSS | VSS |
2024年10月1日 | 3 | RSS | VSS |
注意:如果账单日期相同且账单编号重复,则考虑 VSS。
我累了
SELECT Date, BillNo, Category
, case when [Category]='VSS' then 'VSS' else 'RSS' end [New CATEGORY]
FROM TBL
假设您不真的想更改日期值,那么您可以在此处使用
ROW_NUMBER()
:
SELECT Date, BillNo, Category,
CASE WHEN ROW_NUMBER() OVER (PARTITION BY BillNo ORDER BY Date) > 1
THEN 'VSS' ELSE Category END AS [New Category]
FROM TBL
ORDER BY BillNo, Date;