问题标签 [sql-null]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
126 浏览

mysql - 从 UNION 集合运算符中消除 NULL 值

我们应该如何消除 NULL 值而不是将其保留在单独的行中,值必须驻留在列中,因此通过使用执行结果集中的联合集运算符使 NULL 值消失?

考虑简单的 SQL 查询

实际结果:

预期结果:


SQL 演示

0 投票
2 回答
54 浏览

mysql - 聚合来自 UNION 集合运算符的值

我们应该如何聚合值,如果单个列中有两个值并且其余列包含 NULL 值,那么所有值都需要进行分组,并且列的其余部分应该显示 NULL 作为价值观

我们需要迭代每个列值,移动到顶部并将 NULL 值下一个/底部移动到该特定值,如果单个列中有两个值并且其余列包含 NULL 值,那么所有值都需要移动到顶部,将剩余的 NULL 值留在底部,如果一行中没有值,则它应该简单地显示为 NULL

考虑简单的 SQL 查询

实际结果:

预期结果:


SQL 演示

编辑:

正如 Gordon Linoff 所说,在 MySQL 8+ 中可以使用 row_number() 和 joins 因为我期待通过 SQL Demo 获得满足预期结果的精确解决方案。由于帖子被搁置

0 投票
2 回答
692 浏览

sql - 使用 Powershell NULL 值更新或插入 SQL

如果值不存在,试图弄清楚如何添加 MSSQL-Null 值。

到目前为止,这有效,它将插入新行,如果匹配,它将更新列。但是,如果没有指定终止日期,而不是在数据库中分配一个空值,它将写入 1900-01-01 并且文本字段将为空白而不是空。

尝试添加 +[DBNull]::Value 但没有做任何更改。有点没主意了。:)

用户.CSV:

0 投票
2 回答
116 浏览

mysql - SELECT MAX(...) 在存储过程中错误地返回 NULL

我有一张桌子,里面ga_sum_1有一列created_timestamp。当我从 mysql 命令行执行以下查询时:

如果我从一个非常简单的存储过程中做同样的事情:

但是,当我在存储过程中这样做时:

在最后一个例子中我做错了什么?

====编辑====

一些进一步的研究表明,它是declare created_timestamp- 显然混淆了同名列上的选择!

0 投票
2 回答
103 浏览

mysql - MySQL Workbench,NULL 的平均值返回“0”,我需要它返回 NULL

我正在尝试平均我的情节级别数据。当我在绘图级别执行查询时,它会导致与某些行名关联的所有行都为“NULL”。当我执行相同的查询尝试按行名对特征和分组进行 AVG 时,结果显示为“0”。我需要它显示“NULL”,这样它就不会影响我的平均数。

选择绘图级数据的示例代码:

结果:

选择平均值的示例代码:

结果:

当平均 3 个“NULL”值时,我希望在结果中看到“NULL”而不是“0”,因此它不会影响我在下游执行的任何大均值计算。

0 投票
0 回答
530 浏览

sql - IsNull returns TRUE when inserting empty (NOT NULL) strings in a LONG VARCHAR field (SQL Anywhere)

Delphi 10.3.2 enterprise, database ASA (SQL Anywhere 17.0.9.4913).

I have this table

and I want to insert records using FireDAC TFDConnection and TFDQuery components.

If I assign non-empty strings, everything works properly.

If I insert a record using empty strings (empty, not null!)

the IsNull property on the LONG VARCHAR field returns TRUE even if it has been assigned a NOT NULL value (the empty string), while the short field behavior is correct.

(The property FormatOptions.StrsEmpty2Null for both the connection and the query is FALSE).

Furthermore, when I execute the Post() method, Delphi raises the exception on the LONG VARCHAR field:

Field 'str_long' must have a value

If I set

the record is successful inserted in the database, with empty strings values.

To make short a long story: if I insert a record with empty string values in a LONG VARCHAR field, the IsNull property returns a wrong value and I have to assign Required := False in order to get the INSERT operation executed.

In this small demonstrative application I try to insert

  • a record with NOT EMPTY strings (and everything works properly)

  • a record with EMPTY strings.

Test application output

I have not tested the behavior with other databases.

0 投票
1 回答
56 浏览

mysql - 试图选择最大列学年

我正在尝试遵循这个问题的答案。

但是它对我不起作用,我不明白为什么。

我的 SQL 与 Adrian 在他的回答中的几乎完全相同,但它没有产生相同的结果。基本上,该student-history表有一个tinyint(1)名为的列school-year,通常是 1-3 之间的数字。每个用户可以有多个条目。所以我想找到最高的年份行。

我不完全理解他的回答,所以我真的无法继续前进,但如果有人可以帮助我了解我哪里出错了,那就太好了。

如果我添加到WHERE上述语句中的子句以按用户缩小范围,例如AND h.userID = 54,我仍然会得到三行学生在场的所有三年。LEFT OUTER JOIN似乎根本没有什么不同。

我在这里创建了一个 SQL Fiddle。

0 投票
2 回答
3006 浏览

sql - 左连接内左连接

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

我需要这样的东西

表 A 和 B 以及表 B 和 C 连接在一起。表 A 可以具有表 B 中的一个/零或多个值。同样的情况适用于表 C 中的值。

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

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

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

编辑:数据看起来像这样

0 投票
2 回答
150 浏览

sql - SQL 查询的 NULL NOT IN (Empty_Relation) 在不同的引擎上表现出不同的行为

我尝试了一个在 Postrgresql、Spark 上测试 NULL NOT IN Empty_Relation 的查询,我得到了不同的结果。

Postgresql 输出 1。其他输出 0。

我理解 NOT IN 的 NULL 行为,但我的子查询是空关系,这种情况似乎更有趣。有很多帖子讨论 NOT IN,但我没有找到任何与 NOT IN Empty_Relation 相关的内容。

所以我的问题更像是 ANSI SQL 是否定义了这种行为,或者这实际上是一个灰色区域,两个答案都可以接受。

0 投票
1 回答
65 浏览

sql - Hdp、Hive、横向视图和空:消失的行

由于从 hdp 3.1.0 升级到 3.1.4,我在 Hive 中遇到了一些我不明白的问题。请注意,我只使用 ORC 事务表。

例如这个查询:

它在升级之前完美运行。

现在,即使 CTE 返回一定数量的行,使用横向视图只会从结果集中删除行,没有任何错误,而 CTE 之外没有额外的 where 子句(在我的实际示例中,查询返回 66 行没有侧视图,但只有 19 个)。

就我而言,我有:

  • select count(*)给我66行
  • 当添加静态字符串的横向视图时,我只得到 19 行。

我尝试了很多变化:

  • 如果我用静态 CTE ( ) 替换事件表,select stack(1, ...)我会得到我期望的结果
  • 如果我删除横向视图,我有我期望的行数(只要我不使用不同)
  • 如果我创建并使用临时表而不是 CTE,则结果不会改变。
  • 如果我将json_tuple(cte.json, 'customfield')选择部分放在 CTE 之外(没有其他内容,因为它无效),没有lateral view,我有预期的行数,
  • 如果我get_json_object在 CTE 之外的选择部分中使用(并且没有侧视图),我会得到预期的结果。
  • 当然,配置单元(服务器或元存储)日志中没有任何内容。
  • 附带说明一下,自从升级以来,一个merge语句[不断生成重复项][1],而之前它工作得很好。

另一个非常令人惊讶的是,在 CTE 内部有一个 if 语句,例如:if(is_deleted is null, 'true', 'false'). 如果我替换应该完全有效的is nullwith ,CTE 不会返回任何行。is not distinct from null

我完全不知所措,我不知道为什么会发生这种情况,也不知道我怎么能相信蜂巢。 

我无法通过生成手动数据来复制错误,因此我无法给出(不)工作示例。