使用 hsqldb 的情况?如何?

Posted

技术标签:

【中文标题】使用 hsqldb 的情况?如何?【英文标题】:case when with hsqldb ? how? 【发布时间】:2020-06-10 17:48:14 【问题描述】:

我正在使用带有 HSQLDB 的 libreoffice 基础(新版本),并且想要在某列或单元格数据不为空时查询某个列的位置,我希望生成的单元格输出为“X”,否则它应该保留空的。如何使用 HSQLDB 语法做到这一点?

我用谷歌搜索,但实际上在这方面找不到任何东西。

【问题讨论】:

COALESCE(col, 'X')? 谁投了反对票,请添加解释,说明问题有什么问题以及如何改进。关于COALESCE,它看起来与所要求的相反 - 当数据为空时显示“X”。 【参考方案1】:

在 HSQLDB 1.8 中测试。

SELECT B.NAME
FROM "Table1" A
LEFT OUTER JOIN
    (SELECT ID, 'X' AS NAME FROM "Table1") B
ON A.ID = B.ID AND A.NAME <> ''

表1:

ID NAME
~~ ~~~~
1  George
2  Sally
3

结果:

X
X
(empty)

编辑

HSQLDB 确实有CASE WHEN。文档:http://www.hsqldb.org/doc/1.8/guide/ch09.html#N1251E.

SELECT CASE WHEN NAME<>'' THEN 'X' ELSE '' END FROM "Table1"

SELECT CASEWHEN(NAME<>'', 'X','') FROM "Table1"

【讨论】:

以上是关于使用 hsqldb 的情况?如何?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用看起来像 HSQLDB 关键字的列名创建表?

当结果插入 HSQLDB 表时,如何对结果进行排序?

Hsqldb - 如何删除 char 字段上的填充

如何通过 HSQLDB 和 MySQL 之间的差异来处理 union/order?

使用 hsqldb 部署独立的 java 应用程序

使用 HSQLDB 关键字的奇怪行为