我想运行一个包含4个不同列的SELECT语句,将其命名为col1,col2,col3,col4,并按字母顺序显示所有文本,而忽略任何重复项。
例如,该表包含以下数据。
col1 | col2 | col3 | col4
===============================================
animal | | |
create | animal | |
destroy | | |
giant | create | animal |
create | destroy | belt |
animal | giant | animal | create
animal | | |
预期结果应该是:
答案 0 :(得分:1)
您可以使用UNION
:
SELECT col1 FROM tab
UNION
SELECT col2 FROM tab
UNION
SELECT col3 FROM tab
UNION
SELECT col4 FROM tab
ORDER BY col1
编辑:
要避免使用NULL
和空字符串:
SELECT *
FROM (SELECT col1 FROM tab
UNION
SELECT col2 FROM tab
UNION
SELECT col3 FROM tab
UNION
SELECT col4 FROM tab) sub
WHERE sub.col1 IS NOT NULL AND sub.col1 <> ''
ORDER BY col1;