我在查询中有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 |