是否可以通过将重复值替换为null来选择行

时间:2019-03-24 05:34:46

标签: mysql

我正在尝试选择一个没有重复的表

选择此表。

remoteVideoElement.captureStream()

,然后将重复值更改为null(如果与上述相同), 像这样的桌子。

Tag   Description     Type
A     Car             Sports
A     Car             Hatchback
B     Truck           Mixer
B     Truck           Fire

尝试过与众不同,但显示效果类似于第一张表中的

1 个答案:

答案 0 :(得分:0)

假设您只想显示每个标签按字母顺序排列的最大类型的描述,并且您使用的是MySQL 8+,那么我们可以尝试使用ROW_NUMBER

WITH cte AS (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY Tag ORDER BY Type DESC) rn
    FROM yourTable
)

SELECT
    CASE WHEN rn = 1 THEN Tag END AS Tag,
    CASE WHEN rn = 1 THEN Description END AS Description,
    Type
FROM cte
ORDER BY
    CASE WHEN Tag IS NOT NULL THEN 0 ELSE 1 END,
    Tag,
    rn;