我正在使用下面的表结构进行sql查询
col1 col2 col3
1 nik NULL
1 nik1 NULL
1 NULL mah
1 NULL mah1
现在我想输出
col1 col2 col3
1 nik mah
1 nik1 mah1
所以我想在col2或col3
中有值时合并空值我怎样才能实现这一目标?
编辑:主结构是如果col2有值,那么col3将为null,如果col3有值,则col2将为null
所以我想通过填充空值来减少行的总数
答案 0 :(得分:1)
试试这个:
SELECT T1.Col1,T1.Col2,T2.Col3
FROM
(SELECT Col1,Col2,ROW_NUMBER()OVER(ORDER BY Col1) as RN
FROM TableName
WHERE Col2 IS NOT NULL) T1 FULL OUTER JOIN
(SELECT Col1,Col3,ROW_NUMBER()OVER(ORDER BY Col1) as RN
FROM TableName
WHERE Col3 IS NOT NULL) T2 ON T1.Col1=T2.Col1 AND T1.RN=T2.RN
请参阅SQL Fiddle中的结果。