[列]为空然后为'0'时的情况...不起作用

Squ*_*3lz 1 case isnull sql-server-2012

以下是一个简单的查询,我正在NULL通过使其进行纠正'0'

SELECT 
    CASE WHEN R.P IS NULL THEN '0' ELSE R.P END AS 'RectifyNull'
FROM 
    RBase r
Run Code Online (Sandbox Code Playgroud)

这仍然是我返回NULL值时,我想的字符串值0的的结果,而不是NULL

我究竟做错了什么?

Kri*_*ner 6

您发布的内容应该有效,您确定遇到的NULL不是空字符串吗?('')

另一种写法是:

SELECT isNull(r.p, '0') as 'RectifyNull'
FROM RBase r
Run Code Online (Sandbox Code Playgroud)

处理空字符串 ('') 和 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
Run Code Online (Sandbox Code Playgroud)


小智 5

怎么样COALESCE

 SELECT COALESCE(`R.P`, '0') as 'RectifyNull'
FROM 
    RBase r
Run Code Online (Sandbox Code Playgroud)