3

过去,在 SQL 查询的 SELECT stmt 中,我在 Oracle 中使用过“decode”,在 Microsoft 中使用过“iif”。

我一直在考虑将 SQLite 用于一个项目,但据我所知,SELECT stmt 中的条件很难。谷歌搜索提出了 CASE 的使用.. 但直观地说,这似乎性能不会很好,更不用说更难编码了。或者也许我不完全理解它。

任何人的想法或建议?我真的很想在这个项目中使用 SQLite。

4

1 回答 1

10

我认为案例同样易于使用。它对语法的熟悉可能会让您感到困扰,但这也同样有效。

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 和其他变体都不是。因此,如果您的查询需要在几个不同的数据库上工作;坚持大小写,因为它更有可能跨多个数据库平台工作。

于 2012-05-07T23:06:21.387 回答