过去,在 SQL 查询的 SELECT stmt 中,我在 Oracle 中使用过“decode”,在 Microsoft 中使用过“iif”。
我一直在考虑将 SQLite 用于一个项目,但据我所知,SELECT stmt 中的条件很难。谷歌搜索提出了 CASE 的使用.. 但直观地说,这似乎性能不会很好,更不用说更难编码了。或者也许我不完全理解它。
任何人的想法或建议?我真的很想在这个项目中使用 SQLite。
我认为案例同样易于使用。它对语法的熟悉可能会让您感到困扰,但这也同样有效。
CASE Gender WHEN 'F' then 'FEMALE'
WHEN 'M' then 'MALE'
ELSE 'UNDEFINED'
END as GenderName
或者
CASE WHEN GENDER = 'F' THEN 'FEMALE'
WHEN GENDER = 'M' THEN 'MALE'
ELSE 'UNDEFINED'
END as GenderName
应该注意的是,CASE 几乎与 db 无关:解码、iif、if 和其他变体都不是。因此,如果您的查询需要在几个不同的数据库上工作;坚持大小写,因为它更有可能跨多个数据库平台工作。