标签: sql-null

Postgres未分配的记录,有没有一种方法可以测试null?

有什么方法可以测试未分配的记录是否为空?(对不起,sqlfiddle不喜欢我的DO块。)谢谢。

DO
$$
DECLARE
r record;
BEGIN

r := null;

if r is null    -- ERROR:  record "r" is not assigned yet
then
end if;

END
$$;
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.3 sql-null

3
推荐指数
1
解决办法
2732
查看次数

比较 SQLite 查询中两个可能为 NULL 的值

我有一个 SQLite 查询,如:

SELECT max(e), url, branch FROM (SELECT max(T1.entry) e, T1.url, T1.branch FROM repo_history T1
                                                        WHERE (SELECT active FROM repos T2 WHERE url = T1.url AND branch = T1.branch AND project = ?1)
                                                        GROUP BY T1.url, T1.branch
                                                        UNION
                                                        SELECT null, T3.url, T3.branch FROM repos T3 WHERE active AND project = ?1 )
                               GROUP BY url ORDER BY e
Run Code Online (Sandbox Code Playgroud)

请注意,该?1参数出现了两次。无论如何,在某些情况下,它可以为空(None在 python 中,据我所知,NULL在 SQLite 中变成了)。这是一个问题,因为我不了解 null 处理,但基本上我没有得到任何回报。

那么,我如何处理where "project" = ?1什么时候?1是 …

python sqlite sql-null

3
推荐指数
1
解决办法
1364
查看次数

x = null 与 x IS NULL 之间的区别

在 Snowflake 中,条件表达式x = NULLx IS NULL条件表达式有什么区别?x IS NULL当我想找到某些列是空白的行时,这似乎是我想要的。我问,因为x = NULL被视为有效的语法,我很好奇这个表达式是否有不同的应用程序。

sql where-clause snowflake-cloud-data-platform sql-null

3
推荐指数
1
解决办法
798
查看次数

Postgres regr_slope 返回 NULL

有人可以帮助我了解regr_slope在数据集中有行的情况下返回 NULL的情况吗?例如:

log=> select * from sb1 order by id, ts;
  id  | elapsed |       ts       
------+---------+----------------
 317e |      86 | 1552861322.627
 317e |      58 | 1552861324.747
 317e |      52 | 1552861325.722
 317e |      58 | 1552861326.647
 317e |      82 | 1552861327.609
 317e |     118 | 1552861328.514
 317e |      58 | 1552861329.336
 317e |      58 | 1552861330.317
 317e |      54 | 1552861330.935
 3441 |      68 | 1552861324.765
 3441 |      84 | 1552861326.665
 3441 |      56 | 1552861327.627
 3441 …
Run Code Online (Sandbox Code Playgroud)

postgresql rounding aggregate-functions linear-regression sql-null

2
推荐指数
1
解决办法
771
查看次数

PostgreSQL `IS NOT NULL` 对于复合类型无法正常工作

我正在尝试创建一个函数,该函数应该将表行映射到我的用户定义类型(这是复合类型)并返回结果。如果该表中的某些列为 NULL,则IS NOT NULL检查我的自定义类型不起作用!

例子

我有一个简单的复合类型:

CREATE TYPE my_custom_type AS (
  sender VARCHAR(30),
  destination VARCHAR(30),
  count INTEGER
);
Run Code Online (Sandbox Code Playgroud)

还有一张桌子:

CREATE TABLE messages (
  id INTEGER PRIMARY KEY,
  sender VARCHAR(30),
  destination VARCHAR(30),
  count INTEGER
);
Run Code Online (Sandbox Code Playgroud)

在此示例中插入单行:

INSERT INTO messages VALUES (1, 'sender', 'destination', 100);
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个函数,它将将该行作为自定义 Postgres 类型返回:

CREATE OR REPLACE FUNCTION my_custom_function() 
RETURNS my_custom_type AS
$$
DECLARE
    result my_custom_type;
BEGIN

    SELECT sender, destination, count
    FROM messages
    LIMIT 1
    INTO result;

    IF result IS NULL THEN
        RAISE EXCEPTION 'no data'; …
Run Code Online (Sandbox Code Playgroud)

postgresql plpgsql composite-types sql-null

2
推荐指数
1
解决办法
896
查看次数

在 SQL Server 中评估“value1 与 value2 不不同”的最佳方法

SQL Server 是否有与 Ansi SQL 运算符等效的运算符:IS DISTINCT FROM/IS NOT DISTINCT FROM?

我知道我可以替换:

value1 is not distinct from value2
Run Code Online (Sandbox Code Playgroud)

和 :

(value1 = value2) or (value1 is null and value2 is null)
Run Code Online (Sandbox Code Playgroud)

或者 :

coalesce(value1, -1) = coalesce(value2, -1)
Run Code Online (Sandbox Code Playgroud)

但是这些选项会阻止引擎使用索引,那么SQL Server是否有特定的运算符来检查这种比较?

谢谢。

sql sql-server where-clause sql-server-2014 sql-null

2
推荐指数
1
解决办法
129
查看次数

Postgresql - 将字符串与空值进行比较

我有点困惑,因为我相信这个问题的答案相当简单,但我搜索并尝试了多种选择,但找不到正确的答案。

数据库是PostgreSQL 13.1

我正在使用一个 API,它将 JSON 对象发送到数据库中的存储函数,如下所示:

select * from api.car_model_create( '{
  "payload": {
    "manufacturer": "ai3ZV7PzbP5dNo2fb9q9QGjj2nS5aWJm",
    "name": "SR22",
    "variant": "G2",
    "subname": null
},
    "stk": "YbtmjypXMqXb1U5WOq53DxkaxrbIxl4X"
}'::json
);
Run Code Online (Sandbox Code Playgroud)

该函数查询具有以下结构的表:

CREATE TABLE app.car_models (
   id INTEGER NOT NULL
   , public_id CHARACTER(32) DEFAULT (api.random_string(32))
   , name CHARACTER VARYING(64) NOT NULL
   , variant CHARACTER VARYING(64)
   , subname CHARACTER VARYING(64)
   , designator CHARACTER VARYING(16)
   , manufacturer INTEGER NOT NULL
   , car_type INTEGER 
   , status INTEGER NOT NULL DEFAULT 1
) WITHOUT OIDS TABLESPACE app;
Run Code Online (Sandbox Code Playgroud)

函数内部是这样的查询: …

sql postgresql plpgsql sql-null

2
推荐指数
1
解决办法
1685
查看次数

左连接内左连接

我在从表中获取值时遇到问题。

我需要这样的东西

A.Id a1
  B.Id b1
     C.Id c1
  B.Id b2
     C.Id c2
     C.Id c3
     C.Id c4
Run Code Online (Sandbox Code Playgroud)

表 A 和 B 以及表 B 和 C 连接在一起。表 A 可以包含表 B 中的一个/零个或多个值。表 C 中的值也存在同样的情况。

我需要在表 A 上对表 B 执行左联接,并在表 B 上对表 C 执行左联接。

我尝试使用表 A 和 B 中的左连接,但不知道如何在左连接内执行左连接。

那可能吗?其语法是什么样的?

编辑:数据看起来像这样

ZZN1  P1  NULL
ZZN1  P2  NAB1
ZZN2  P3  NAB2
ZZN2  P3  NAB3
Run Code Online (Sandbox Code Playgroud)

sql database sql-server left-join sql-null

1
推荐指数
1
解决办法
7354
查看次数

在一行中输出一个表记录的多个计数

这是一个示例表 CALLRECORD:

    +--------+------------+
    |callid  |   rating   |
    |1       |            |
    |2       |   5        |
    |3       |            |
    |4       |   1        |
    |5       |            |
    +--------+------------+
Run Code Online (Sandbox Code Playgroud)

输出总通话数、评级通话数、平均评级和未评级通话数没有问题:

select count(*) as total from callrecord;
select count(*) as rated, avg(rating) as average_rating from callrecord where rating is not null;
select count(*) as unrated from callrecord where rating is null;
Run Code Online (Sandbox Code Playgroud)
    +--------+
    |total   |
    |5       |
    +--------+

    +--------+------------+
    |rated   |average     |
    |2       |3           |
    +--------+------------+

    +--------+
    |unrated |
    |3       |
    +--------+
Run Code Online (Sandbox Code Playgroud)

我正在寻找如何使用单个 SQL 请求将以上所有内容输出到一行:

    +--------+--------+------------+---------+ …
Run Code Online (Sandbox Code Playgroud)

sql informix average count sql-null

1
推荐指数
1
解决办法
31
查看次数

在 Postgres 中,字段 != 'N' 无法包含 NULL 值

我们在 Postgres 中有一个案例,其中

where p.is_ready_for_submission != 'N'

未能包含 NULL 作为此条件的满意值。该列is_ready_for_submission可以是NULL, Y, N。上述语句的目的是包含NULLY。但 NULL 不包括在内(它们在 Oracle 中)。

实现这一目标的唯一方法是将其重写为

(p.is_ready_for_submission is null or p.is_ready_for_submission = 'Y')
Run Code Online (Sandbox Code Playgroud)

这对于 Postgres 来说是特别的吗?注意:!=和都会发生这种情况<>

postgresql sql-null

1
推荐指数
1
解决办法
1444
查看次数