SQLite的CASE语句贵吗?

gal*_*13x 10 mysql sql sqlite

我想知道是不是建议在SQLite(或其他SQL引擎)中使用CASE语句来替换数据.例如,假设我有一个查询.

SELECT Users, 
                CASE WHEN Active = 0 THEN 'Inactive'
                        WHEN Active = 1 THEN 'Active'
                        WHEN Active = 2 THEN 'Processing'
                        ELSE 'ERROR' END AS Active
FROM UsersTable;
Run Code Online (Sandbox Code Playgroud)

何时更好地创建引用表并执行JOIN.在这种情况下,我将使用ActiveID,ActiveDescription创建一个表'ActiveStatesTable'并执行JOIN.

OMG*_*ies 11

CASE语句是首选语法:

  • 它是ANSI(92?),因此它支持MySQL,Oracle,SQL Server,Postgres ......与数据库供应商特定的IF语法不同
  • 它支持短周期 - 一旦标准匹配,其余的评估不会执行

  • 是否应考虑CASE声明的大小?如果列中的"描述ID"列在表中,并且有100个描述要映射,该怎么办? (2认同)