表格中的列数很少
Col1 , Col2 , Col3 , Col4
现在我想选择这样的
SELECT DISTINCT (Col1, Col2, Col3), Col4
即。只根据这三个组来获得区别。
答案 0 :(得分:6)
GROUP BY Col1, Col2, Col3
只有col4
的汇总功能,例如MAX
,MIN
等等。就像这样:
SELECT Col1, Col2, Col3, MAX(Col4)
FROM TableName
GROUP BY Col1, Col2, Col3
答案 1 :(得分:3)
从评论到另一个答案:
我可以使用此Col1,Col2,Col3和(Col4以分隔符形式)
是的,您可以使用for xml path
。
select Col1,
Col2,
Col3,
(
select ',' + T2.Col4
from YourTable T2
where T1.Col1 = T2.Col1 and
T1.Col2 = T2.Col2 and
T1.Col3 = T2.Col3
for xml path(''), type
).value('substring((./text())[1], 2)', 'varchar(max)') as Col4
from YourTable as T1
group by T1.Col1, T1.Col2, T1.Col3
答案 2 :(得分:0)
group by和distinct在SQL中执行几乎相似的功能:
所以下面的两个查询几乎相同:
SELECT DISTINCT Col1, Col2, Col3 FROM tbl
SELECT Col1, Col2, Col3 FROM tbl GROUP BY Col1, Col2, Col3
答案 3 :(得分:0)
select distinct ( Convert(varchar(255),Col1) +' '+
Convert(varchar(255),Col2)+' '+Convert(varchar(255),Col3)),
Col4 from clients