我的表中有几列
Col1 , Col2 , Col3 , Col4
现在我想像这样选择
SELECT DISTINCT (Col1, Col2, Col3), Col4
即仅基于这三个列得到不同的。
我的表中有几列
Col1 , Col2 , Col3 , Col4
现在我想像这样选择
SELECT DISTINCT (Col1, Col2, Col3), Col4
即仅基于这三个列得到不同的。
只需GROUP BY Col1, Col2, Col3
使用带有col4
like MAX
,MIN
等的聚合函数 .. 就像这样:
SELECT Col1, Col2, Col3, MAX(Col4)
FROM TableName
GROUP BY Col1, Col2, Col3
从评论到另一个答案:
我可以得到这样的 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
group by 和 distinct 在 SQL 中执行几乎相似的功能:
所以下面的两个查询几乎是等价的:
SELECT DISTINCT Col1, Col2, Col3 FROM tbl
SELECT Col1, Col2, Col3 FROM tbl GROUP BY Col1, Col2, Col3
select distinct ( Convert(varchar(255),Col1) +' '+
Convert(varchar(255),Col2)+' '+Convert(varchar(255),Col3)),
Col4 from clients