我正在使用CASE表达式显示“ NamaAyah”或“ NamaIbu”或“ NamaWali”,如果它们全部为空,则默认值将显示“ ORTU-'NomorPokok'”。 但是未显示默认值,它仅在我的表中显示符号“-”。我认为ELSE语句中的值未执行。
Postgre版本:PostgreSQL 9.4.15
这是我的代码
SELECT
"MahasiswaID" AS "PERSONID","NomorPokok" AS "KODE",
UPPER(CASE
WHEN "NamaAyah" <> '' THEN "NamaAyah"
WHEN "NamaIbu" <> '' THEN "NamaIbu"
WHEN "NamaWali" <> '' THEN "NamaWali"
ELSE 'ORTU'||'-'||"NomorPokok"
END) AS "NAMALENGKAP"
FROM "MasterMahasiswa" ORDER BY "KODE"
答案 0 :(得分:1)
您拥有的表达式可以更简单:
ELSE 'ORTU-'||"NomorPokok"
除此之外,对您显示的内容的唯一合理解释是,您的一个或多个列-
,"NamaAyah"
和"NamaIbu"
中包含文字"NamaWali"
。你检查了吗?