Jen*_*art 17 sql group-by sql-like
我有一个查询,我生成我们的每月客户联系活动.我们有几个类别(电子邮件,电子邮件,电话,电话呼叫等).有8种不同的"类型"结果.我需要有两个小组 - 一个用于所有"电子邮件",一个用于所有"电话".目前,我有一个WHERE TYPE LIKE'%Email%'和TYPE LIKE'%Call%'.但是,我无法通过这两个"LIKE"语句进行分组.有谁知道我怎么能最好地实现这一目标?
我将查询简化为此示例:
SELECT TYPE
FROM dbo.HISTORY
WHERE (TYPE LIKE '%email%') OR
(TYPE LIKE '%call%')
Run Code Online (Sandbox Code Playgroud)
Tom*_*m H 20
这应该工作:
SELECT
TYPE
FROM
dbo.HISTORY
WHERE
(TYPE LIKE '%email%') OR (TYPE LIKE '%call%')
GROUP BY
CASE
WHEN type LIKE '%email%' THEN 'email'
WHEN type LIKE '%call%' THEN 'call'
ELSE NULL
END
Run Code Online (Sandbox Code Playgroud)
虽然,我的建议是让一个类型代码表与另一列,告诉每个类型是否被视为电子邮件或电话.然后你不会依赖于特定格式的类型名称,这种格式肯定会被遗忘.然后,您可以轻松地分组:
SELECT
H.type
FROM
dbo.History
INNER JOIN dbo.History_Types HT ON
HT.history_type_code = H.history_type_code AND
HT.history_type_category IN ('Email', 'Call')
GROUP BY
HT.history_type_category
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21063 次 |
最近记录: |