为什么此查询有时会返回null

时间:2017-06-09 04:08:54

标签: sql sql-server

为什么以下代码有时会返回null。

SELECT 
    CASE ABS(CHECKSUM(NEWID())) % 4
        WHEN 0 THEN 'Dr'
        WHEN 1 THEN 'Master'
        WHEN 2 THEN 'Mr'
        WHEN 3 THEN 'Mrs'
    END

如果我改为:

DECLARE @n INT
SELECT @n = ABS(CHECKSUM(NEWID())) % 4

SELECT 
    CASE @n
        WHEN 0 THEN 'Dr'
        WHEN 1 THEN 'Master'
        WHEN 2 THEN 'Mr'
        WHEN 3 THEN 'Mrs'
    END

它永远不会返回null。

Picture

0 个答案:

没有答案