Select distinct from multiple fields using sql

后端 未结 8 1899
难免孤独
难免孤独 2020-12-01 12:53

I have 5 columns corresponding to answers in a trivia game database - right, wrong1, wrong2, wrong3, wrong4

I want to return all possible answers without duplicates.

8条回答
  •  栀梦
    栀梦 (楼主)
    2020-12-01 13:48

    I provided one answer above.

    However I figured a much better way to do it using UNPIVOT.

    SELECT DISTINCT(ans)
    FROM (
        SELECT [Name], ANS 
        FROM (
            SELECT right, wrong1, wrong2, wrong3, wrong4 
            FROM answers
        ) AS PVT
        UNPIVOT 
        (ans FOR [Name] IN (right, wrong1, wrong2, wrong3, wrong4)) AS UNPVT
    ) AS OUTPUT;
    

    You can provide any WHERE clause in the internal subquery:

    SELECT DISTINCT(ans)
    FROM (
        SELECT [Name], ANS 
        FROM (
            SELECT right, wrong1, wrong2, wrong3, wrong4 
            FROM answers
            WHERE (...)
        ) AS PVT
        UNPIVOT 
        (ans FOR [Name] IN (right, wrong1, wrong2, wrong3, wrong4)) AS UNPVT
    ) AS OUTPUT;
    

提交回复
热议问题