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

选择

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

CHOOSE() 函数的作用就像一个整数的开关,返回第 n 个参数。它是 CASE 表达式 的缩写形式

SELECT
  choose(1, 'a', 'b'),
  choose(2, 'a', 'b'),
  choose(3, 'a', 'b');
create.select(
  choose(val(1), val("a"), val("b")),
  choose(val(2), val("a"), val("b")),
  choose(val(3), val("a"), val("b"))).fetch();

结果是

+--------+--------+--------+
| choose | choose | choose |
+--------+--------+--------+
| a      | b      | {null} |
+--------+--------+--------+

方言支持

此示例使用 jOOQ

choose(val(1), val("a"), val("b"))

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

访问

SWITCH(1 = 1, 'a', 1 = 2, 'b')

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

CASE 1
  WHEN 1 THEN 'a'
  WHEN 2 THEN 'b'
END

Aurora MySQL, MariaDB, MemSQL, MySQL

elt(1, 'a', 'b')

Databricks

elt(
  CASE
    WHEN 1 BETWEEN 1 AND 2 THEN 1
  END,
  'a',
  'b'
)

Derby

CASE
  WHEN 1 = 1 THEN 'a'
  WHEN 1 = 2 THEN 'b'
END

SQLServer

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

引用此页

反馈

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

The jOOQ Logo