我正在移动一个具有名字,姓氏和公司名称的客户数据库。目前的数据要么是First&姓氏或公司名称
在新数据库中,我有一个"打印名称"我需要将名字和姓氏组合成一个字段,或者如果有公司名称,我需要使用这个值。
我已经尝试过低于CASE WHEN表达无效。
SELECT
fstnam,
lstnam,
cmpnam,
CASE
WHEN csttbl.cmpnam = null THEN fstnam||' '||lstnam
ELSE csttbl.cmpnam
END as PrintName
FROM csttbl;
通过上述查询,我在打印名称列中只返回公司名称,而不是组合的First&姓。返回的数据可以在这里看到https://drive.google.com/open?id=0B31ZRmFSX6rMYmNOczlRNE1lM2c
任何帮助将不胜感激
答案 0 :(得分:1)
更改
csttbl.cmpnam = null
要
csttbl.cmpnam is null
RDBMS无法将null
与任何值进行比较,因此使用带有null的=
是没有用的。要比较空值,您应该使用is null
,它几乎适用于所有RDBMS。
答案 1 :(得分:0)
我会使用coalesce()
:
SELECT fstnam, lstnam, cmpnam,
COALESCE(csttbl.cmpnam, fstnam|| ' ' || lstnam) as PrintName
FROM csttbl;