SQLite:像Oracle Decode或MS"If"之类的东西

Pau*_*ulb 3 sql sqlite oracle

在过去,我在Oracle中使用了"decode",在SQL查询的SELECT stmt中使用了Microsoft中的"iif".

我一直在考虑SQLite的项目,但据我所知,SELECT stmt中的条件很难.谷歌搜索带来了CASE的使用..但直观地说,似乎性能不是很好,更不用说代码更难了.或许我不完全理解它.

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

xQb*_*ert 10

我认为案例同样易于使用.它熟悉语法可能会给你带来错误,但这也很有效.

CASE Gender WHEN 'F' then 'FEMALE'
            WHEN 'M' then 'MALE'
            ELSE 'UNDEFINED'
            END as GenderName
Run Code Online (Sandbox Code Playgroud)

要么

CASE WHEN GENDER = 'F' THEN 'FEMALE'
     WHEN GENDER = 'M' THEN 'MALE'
     ELSE 'UNDEFINED' 
     END as GenderName
Run Code Online (Sandbox Code Playgroud)

应该注意的是,CASE几乎与数据库无关:解码,iif,if和其他变体都没有.因此,如果您的查询需要在几个不同的数据库上工作; 坚持使用案例,因为它更有可能跨多个数据库平台工作.