如何在Redshift查询结果中区分NULL值与空字符串?
在Redshift中区分NULL值与空字符串(解决SQL Workbench/J显示混淆问题)
在SQL Workbench/J里,NULL值和空/空格字符串都会显示为空,要区分它们可以用这几种实用方法:
用IS NULL/IS NOT NULL生成判断标记
直接通过逻辑判断生成标识列,明确区分NULL和非NULL值:SELECT original_null_col, original_null_col IS NULL AS is_null, space_str_col, space_str_col IS NULL AS space_is_null, len(space_str_col) AS space_length FROM (SELECT null AS original_null_col, ' ' AS space_str_col) temp;执行后,NULL对应的
is_null列会返回true,空格字符串对应的space_is_null则返回false,一目了然。用NVL/COALESCE替换NULL为专属标识
把NULL值替换成一个肉眼可辨的特殊字符串,和空格字符串形成明显区别:SELECT NVL(null, '[NULL]') AS marked_null, NVL(' ', '[NULL]') AS kept_space_str, len(' ') AS space_length;这里NULL会被替换成
[NULL],而空格字符串会保留原内容,直接从结果里就能区分。用CASE语句做精细化区分
如果需要同时区分NULL、空字符串、空格字符串,用CASE分支判断:SELECT col, CASE WHEN col IS NULL THEN '类型:NULL' WHEN col = '' THEN '类型:空字符串' ELSE '类型:含空格的字符串' END AS type_description FROM ( SELECT null AS col UNION ALL SELECT '' AS col UNION ALL SELECT ' ' AS col ) temp;这个查询会直接给每一行标注明确的类型,彻底解决显示混淆的问题。
内容的提问来源于stack exchange,提问作者fdkgfosfskjdlsjdlkfsf
相关产品推荐
相关产品推荐

