sql-server-2008 - 使用 CASE 和 COALESCE

标签 sql-server-2008 case coalesce

这个语法只会给我一个无用的错误

Incorrect syntax near mentorname

我要更新什么来强制显示结果?

SELECT COALESCE(case when
            mentorname LIKE '%Med%' THEN 'MedTronics' end
            mentorname LIKE '%Zi%' THEN 'Zinamice' end
            , 'Total') As [Prov Source]

来自数据库1

最佳答案

试试这个:

SELECT COALESCE(CASE 
                    WHEN mentorname LIKE '%Med%' 
                        THEN 'MedTronics'
                    WHEN mentorname LIKE '%Zi%' 
                        THEN 'Zinamice' 
               END
            , 'Total') As [Prov Source]

尽管您可以简化查询并完全摆脱 COALESCE 并只留下 CASE:

SELECT
    CASE 
        WHEN mentorname LIKE '%Med%'
            THEN 'MedTronics'
        WHEN mentorname LIKE '%Zi%'
            THEN 'Zinamice'
        ELSE 'Total'
    END AS [Prov Source]

关于sql-server-2008 - 使用 CASE 和 COALESCE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31161771/

相关文章:

sql - 如何根据条件选择每组的第一行

sql - 用多个分隔符分割字符串

SQL:仅在表中选择没有空值的列

javascript - 是否可以在同一条线上断开?

NHibernate QueryOver 按第一个非空值排序(合并)

memory - 合并是否触发以相反的顺序访问内存?

sql - 使用来自另一个表的百分比数据填充用户表

改变 C 中字母的大小写?

mysql - MySQL 中将多个字段合并为一个且具有明确标签

postgresql - 在 postgres/COALESCE 中正确使用 COALESCE 无法正常工作