代码之家  ›  专栏  ›  技术社区  ›  Aarion

SQL检查函

  •  0
  • Aarion  · 技术社区  · 4 年前

    列名称将有一个由三个字符组成的字符串,其中包含字母“R”、“a”和“G”的组合。

    我在尝试应用逻辑: 如果列名称包含“R”,则为主要问题 其他还好吗

    您能告诉我如何使用下面的SQL Update语句来实现这一点吗?

    UPDATE DBO.TABLE_NAME
    SET [COLUMN_RESULT] = 
    (
    CASE WHEN COLUMN_NAME LIKE '%R%'THEN 'MAJOR_ISSUE'
    
      WHEN  COLUMN_NAME LIKE '%A%' ***AND NOT LIKE %R%*** THEN 'MINOR ISSUE'
    
     ELSE 'OK'
     END
     )
    
    

    任何帮助都将不胜感激

    1 回复  |  直到 4 年前
        1
  •  0
  •   MatBailie    4 年前

    AND 是逻辑运算符,两边需要两个完整的布尔表达式。

    • boolean AND boolean

    LIKE 是布尔运算符,两边都需要一个字符串。

    • string LIKE string

    WHEN COLUMN_NAME LIKE '%A%' AND COLUMN_NAME NOT LIKE '%R%' THEN 'MINOR ISSUE'
    

    WHEN (COLUMN_NAME LIKE '%A%') AND (COLUMN_NAME NOT LIKE '%R%') THEN 'MINOR ISSUE'