可用版本: Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

IIF

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

IIF() 函数检查第一个参数是否为 TRUE,如果是,则生成第二个参数;否则,生成第三个参数。 它的工作方式类似于 NVL2 函数CASE 表达式

SELECT
  iif(1 = 1, 3, 4),
  iif(1 = 2, 3, 4);
create.select(
  iif(inline(1).eq(inline(1)), inline(3), inline(4))
  iif(inline(1).eq(inline(2)), inline(3), inline(4))).fetch();

结果是

+-----+-----+
| iif | iif |
+-----+-----+
|   3 |   4 |
+-----+-----+

方言支持

此示例使用 jOOQ

iif(inline(1).eq(inline(2)), inline(3), inline(4))

翻译成以下特定方言的表达式

Access, SQLServer

iif(1 = 2, 3, 4)

ASE, Aurora Postgres, BigQuery, CockroachDB, DB2, Databricks, Derby, DuckDB, Exasol, Firebird, H2, HSQLDB, Hana, Informix, Oracle, Postgres, Redshift, SQLDataWarehouse, SQLite, Snowflake, Sybase, Teradata, Trino, Vertica, YugabyteDB

CASE
  WHEN 1 = 2 THEN 3
  ELSE 4
END

Aurora MySQL, ClickHouse, MariaDB, MemSQL, MySQL

if(1 = 2, 3, 4)
使用 jOOQ 3.21 生成。早期 jOOQ 版本的支持可能有所不同。 在我们的网站上翻译您自己的 SQL

引用此页

反馈

您对此页面有任何反馈吗? 我们很乐意听取您的意见!

The jOOQ Logo