我有一个我想要分组的varchar字段。
除非我想将包含'.'
字符的所有行合并到一个组中
起始表,"名称"中包含以下5个条目字段:
Aaa Aa
Bbb Bb
Ccc.Cc
Ddd.Dd
Eee.Ee
预期分组:
Aaa Aa
Bbb Bb
HasDot
也许沿着这些方向使用某些东西?
Select "Name", count(*)
from MyTable
group by "Name"
-- group normally except for the group containing '.'
答案 0 :(得分:1)
使用CASE
表达式:
SELECT CASE
WHEN Name LIKE '%.%' THEN 'HasDot'
ELSE Name
END Name,
COUNT(*) N
FROM dbo.YourTable
GROUP BY CASE
WHEN Name LIKE '%.%' THEN 'HasDot'
ELSE Name
END;
答案 1 :(得分:0)
SELECT DISTINCT IIF ((charindex('.',name) >0),'HasDot',name) NAME
FROM [name1]
ORDER BY NAME