【问题标题】:getting error while executing a select query which has case statement and join执行具有 case 语句和连接的选择查询时出错
【发布时间】:2021-05-03 12:37:38
【问题描述】:

我在执行包含 case 语句和连接的选择查询时遇到错误。

关键字“IS”附近的语法不正确..

SELECT pb.Id,
         pb.Name,
            CASE 
            pb.Firstname
            WHEN (pb.lastName IS NULL OR pb.lastName = 'No') THEN 'Yes'
            ELSE pb.Firstname END,              
               pb.Email,
                   CASE 
                   pb.MiddleName
                   WHEN (pb.Code = 1 OR pb.Code IS NULL) THEN 'Yes' 
                   ELSE pb.MiddleName END AS MiddleName
FROM Table1 a
JOIN
  Table2 pb
ON
  Table1.Id = Table2.Id

谁能建议这个查询有什么问题? 提前致谢

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    您正在混合两种形式的大小写。你想要的表格——搜索到case——在case之后没有一列:

            (CASE WHEN pb.lastName IS NULL OR pb.lastName = 'No' THEN 'Yes'
                  ELSE pb.Firstname
             END) as Firstname,              
            pb.Email,
            (CASE WHEN pb.Code = 1 OR pb.Code IS NULL THEN 'Yes' 
                  ELSE pb.MiddleName
             END) AS MiddleName
    

    我猜你希望第一个 CASE 表达式具有别名 FirstName

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-18
      相关资源
      最近更新 更多