以下是我正在运行的一个简单查询,通过使NULL
'0'
来纠正SELECT
CASE WHEN R.P IS NULL THEN '0' ELSE R.P END AS 'RectifyNull'
FROM
RBase r
:
NULL
当我希望结果中的字符串值0
而不是NULL
我做错了什么?
答案 0 :(得分:4)
COALESCE
怎么样?
SELECT COALESCE(`R.P`, '0') as 'RectifyNull'
FROM
RBase r
答案 1 :(得分:2)
您需要的是使用“isnull”功能。 isnull将做的是它将使用您在第二个参数中指定的值替换空值。
前 -
select
R.P
, isnull(R.P, '0') as replacingNulls
from RBase r
编辑:如果NULL值实际上不是NULL,而是字符串文字“NULL”,那么你应该像这样使用case语句:
select
R.P
, case when R.P = 'NULL' then '0' else R.P end as replacingNulls
from RBase r
答案 2 :(得分:1)
你发布的应该工作,你确定你遇到NULL
而不是空字符串吗? ( '')
另一种写作方式是:
SELECT isNull(r.p, '0') as 'RectifyNull'
FROM RBase r
处理空字符串('')和NULL字符串
SELECT
CASE
WHEN R.P IS NULL THEN '0'
WHEN r.p = 'NULL' THEN '0'
ELSE R.P
END AS 'RectifyNull'
FROM
RBase r