gpt4 book ai didi

PostgreSQL - 检查一行是否被完全填满

转载 作者:行者123 更新时间:2023-11-29 14:18:32 28 4
gpt4 key购买 nike

我已经看到关于 checking if a row merely exists 的问题, 但我还没有看到任何关于是否所有数据都被填充的信息(在 SO 或其他地方)。

我希望 SELECT true FROM myTable WHERE name='myRow' AND * IS NOT NULL; 会起作用,但它不会。

什么通配符可以代替星号(如果有的话)?我是否必须将每个列名单独放入查询中?

最佳答案

您确实可以引用整行,但不是使用*,而是使用表名:

SELECT true 
FROM myTable
WHERE name='myRow'
AND myTable IS NOT NULL;

如果行的所有列不为空,则行值的 IS NOT NULL 运算符返回 true。

下面的语句:

with mytable (col1, col2, col3) as (
values
(1,null,null),
(null,1,null),
(null,null,1),
(1,1,1)
)
select *
from mytable
where mytable is not null;

将返回:

col1 | col2 | col3
-----+------+-----
1 | 1 | 1

相反的顺便说一句。不是真的。 where mytable is null 将不会返回任何内容,因为根据定义,行永远不会为 null(因为那样它就不会存在)。要查找至少一列为空的行,您需要使用 where not (mytable is not null)

这里描述了一个类似的问题:https://dba.stackexchange.com/q/143959/1822

关于PostgreSQL - 检查一行是否被完全填满,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38631465/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com