使用REGEXP_LIKE识别并隔离包含null值的字符串
识别字符串中的"null"文本并标记记录
你提供的测试SQL存在逻辑问题:REGEXP_LIKE(NULL, '.')并未检查目标字段text_value,而是以NULL作为匹配对象,这会导致所有记录的VALID字段都返回'N',无法实现识别包含"null"文本的需求。
以下是修正后的SQL,可正确识别并标记包含"null"文本的记录:
WITH test_data (text_value) AS ( SELECT 'null,test' FROM DUAL UNION ALL SELECT '12345678' FROM DUAL ) SELECT td.text_value, CASE WHEN REGEXP_LIKE(td.text_value, 'null') THEN '是' ELSE '否' END AS 是否包含null文本 FROM test_data td
预期输出
| text_value | 是否包含null文本 |
|---|---|
| null,test | 是 |
| 12345678 | 否 |
若需要保留类似原SQL的'Y'/'N'标记(仅翻译为中文),CASE语句可调整为上述形式,或根据需求自定义标记文本。
内容的提问来源于stack exchange,提问作者Bob
相关产品推荐
相关产品推荐

