当没有匹配时,SQL报告返回破折号

时间:2011-12-08 23:09:11

标签: sql

我有一个分支列表,当没有分支时,结果以短划线形式返回。我曾经尝试过这样的案例:

CASE Table.column
WHEN '-' THEN 'Global'
ELSE Table.column
END

这没有任何作用。我试过了:

CASE Table.column
WHEN NULL THEN 'Global
ELSE Table.column
END

这也没有做任何事。有什么想法吗?分支数据来自的表中没有带破折号的行。

谢谢你们。

2 个答案:

答案 0 :(得分:1)

CASE Table.column
WHEN NULL THEN 'Global'
ELSE Table.column
END

这意味着与

相同
CASE
WHEN Table.column = NULL THEN 'Global'
ELSE Table.column
END

但Table.column永远不会比较等于NULL,因为没有比较等于NULL。请改用IS NULL:

CASE
WHEN Table.column IS NULL THEN 'Global'
ELSE Table.column
END

或更短,如果您的数据库支持它:

COALESCE(Table.column, 'Global')

答案 1 :(得分:0)

CASE WHEN Table.colmun = '-' THEN 'Global' ELSE Table.column END
相关问题