CASE声明全部返回" ELSE"值

时间:2017-02-10 09:21:02

标签: mysql case

我在查询中有case语句,我查看并验证输入的值。我不确定我是否正确应用了我的case语句,因为所有输出都返回了" ELSE"部分查询。我知道我的数据确实包含与其他两个条件相匹配的正确值,但即使是这些也会返回" ELSE"值。

以下是我的个案陈述:

,   MAX(CASE
        WHEN line_field_id = 2199 AND line_value REGEXP '^HSA[0][0-5][0-9][0-9][0-9][0-9]$' AND line_value LIKE BINARY 'HSA%' THEN line_value
        WHEN line_field_id = 2199 AND line_value REGEXP '^A[0-9][0-9][0-9][0-9][0-9][0-9]$' AND line_value LIKE BINARY 'A%' THEN line_value 
        ELSE 'INVALID' 
    END)                'scanned_value'

两列的一些样本值:

   row_number | line_value | line_field_id | 
    ----------+------------+---------------+
    1         |HSA014173   |2199           |
    2         |HSA013765   |2199           |    
    3         |A062345     |2199           |    
    4         |ZHR098765   |2199           |   
    5         |A062499     |2199           |   
    6         |HSA045000   |2416           |    
    7         |HSA049800   |2416           |    
    8         |A069999     |2416           |

期望的结果集:

   row_number | Result     | line_field_id | 
    ----------+------------+---------------+
    1         |HSA014173   |2199           |
    2         |HSA013765   |2199           |    
    3         |A062345     |2199           |    
    4         |INVALID     |2199           |   
    5         |A062499     |2199           |   

0 个答案:

没有答案