我是这个主题的新手,需要帮助...如何在 SQL 中仅一个字段的查询中隐藏重复项?例如,我有一张桌子
- 1、122、123、6
- 2、122、156、7
- 3、122、188、6
- 4、101、186、8
我想得到桌子
- 122、123、6
- 空,156, 7
- 空,188, 6
- 101、186、8
“Emty”意味着这个单元格应该是空的。谢谢你的帮助。
我是这个主题的新手,需要帮助...如何在 SQL 中仅一个字段的查询中隐藏重复项?例如,我有一张桌子
我想得到桌子
“Emty”意味着这个单元格应该是空的。谢谢你的帮助。
这是一种可能的方法:
DECLARE @t TABLE (col1 INT, col2 INT, col3 INT, col4 INT)
INSERT @t VALUES
(1, 122, 123, 69),
(2, 122, 156, 7),
(3, 122, 188, 6),
(4, 101, 186, 8)
SELECT CASE WHEN ROW_NUMBER() OVER (PARTITION BY col2 ORDER BY col1) = 1 THEN col2 END col2_New
, col3
, col4
FROM @t
ORDER BY
col1
只有第一次出现的 acol2
将其值写入结果集中(值按col1
升序排序),否则该值为 NULL(在数据库术语中表示未定义值)。它使用 TSQL函数,你可以在这里ROW_NUMBER
阅读它。对函数的调用包含在条件表达式中,如果它是某个值的第一次出现,则可以只写出值。ROW_NUMBER
CASE ... WHEN ... THEN ... END
col2