ISNULL() 的 PostgreSQL 等效项是什么

发布于 2024-08-20 16:08:08 字数 159 浏览 7 评论 0原文

在 MS SQL-Server 中,我可以执行以下操作:

SELECT ISNULL(Field,'Empty') from Table

但在 PostgreSQL 中我收到语法错误。如何模拟 ISNULL() 功能?

In MS SQL-Server, I can do:

SELECT ISNULL(Field,'Empty') from Table

But in PostgreSQL I get a syntax error. How do I emulate the ISNULL() functionality ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

甩你一脸翔 2024-08-27 16:08:08
SELECT CASE WHEN field IS NULL THEN 'Empty' ELSE field END AS field_alias

或者更惯用的说法:

SELECT coalesce(field, 'Empty') AS field_alias
SELECT CASE WHEN field IS NULL THEN 'Empty' ELSE field END AS field_alias

Or more idiomatic:

SELECT coalesce(field, 'Empty') AS field_alias
后知后觉 2024-08-27 16:08:08

请改用 COALESCE()

SELECT COALESCE(Field,'Empty') from Table;

它的功能与 ISNULL 非常相似,但提供了更多功能。 Coalesce 将返回列表中的第一个非空值。因此:

SELECT COALESCE(null, null, 5); 

返回 5,而

SELECT COALESCE(null, 2, 5);

返回 2

合并将需要大量参数。没有记录的最大值。我测试了 100 个参数,结果成功了。这对于绝大多数情况来说应该足够了。

Use COALESCE() instead:

SELECT COALESCE(Field,'Empty') from Table;

It functions much like ISNULL, although provides more functionality. Coalesce will return the first non null value in the list. Thus:

SELECT COALESCE(null, null, 5); 

returns 5, while

SELECT COALESCE(null, 2, 5);

returns 2

Coalesce will take a large number of arguments. There is no documented maximum. I tested it will 100 arguments and it succeeded. This should be plenty for the vast majority of situations.

雨后咖啡店 2024-08-27 16:08:08

如何模拟 ISNULL() 功能?

SELECT (Field IS NULL) FROM ...

How do I emulate the ISNULL() functionality ?

SELECT (Field IS NULL) FROM ...
随梦而飞# 2024-08-27 16:08:08

尝试:

SELECT COALESCE(NULLIF(field, ''), another_field) FROM table_name

Try:

SELECT COALESCE(NULLIF(field, ''), another_field) FROM table_name
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文