对于空值,在这个语句下它是否会被判断到ELSE 'Other这里?还有就是如果我先使用上述case语句,再进行空值处理:null::VARCHAR as industry, 之前的值会被覆盖吗?
时间: 2024-04-13 22:31:06 浏览: 103
在这个CASE语句中,如果`t1.industryphy`的值为空(NULL),它将被ELSE语句中的'Other'值所替代。因此,空值将被归类为'Other'。
关于你的第二个问题,如果你先使用了上述的CASE语句来创建`industry`列,然后再使用`null::VARCHAR as industry`进行空值处理,之前的值将会被覆盖。最终结果将是`industry`列中所有空值都被设置为NULL。
例如,如果你的查询如下:
```sql
SELECT
CASE
WHEN t1.industryphy = 'C' THEN 'C'
WHEN t1.industryphy = 'M' THEN 'M'
WHEN t1.industryphy = 'K' THEN 'K'
WHEN t1.industryphy = 'H' THEN 'H'
ELSE 'Other'
END AS industry,
null::VARCHAR as industry
FROM your_table;
```
无论之前的CASE语句中`industry`列的值是什么,最终结果中`industry`列将全部被设置为NULL。这是因为最后一行的`null::VARCHAR as industry`会覆盖之前的值,并将所有值设置为NULL。
阅读全文