我有这张桌子
col 1 col 2 col 3 .... col N
-------------------------------------
1 A B fooa
10 A foo cc
4 A B fooa
可以使用sql查询只返回一个值,只有值是全部相同的值?
col 1 col 2 col 3 .... col N
-------------------------------------
-- A -- --
答案 0 :(得分:5)
SELECT
CASE WHEN COUNT(col1) = COUNT(*) AND MIN(col1) = MAX(col1) THEN MIN(col1) END AS col1,
CASE WHEN COUNT(col2) = COUNT(*) AND MIN(col2) = MAX(col2) THEN MIN(col2) END AS col2,
...
FROM yourtable
您必须在列中允许NULL:
也就是说,混合了As和NULL的列不是一个值。 MIN和MAX都会给出A,因为它们会忽略NULL。
编辑: