问题标签 [sql-standards]
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.
sql - 是否符合加入标准 sql 的更新
是否符合以下标准 SQL?如果不是,那为什么不呢?
sql - 如何使用 Oracle 11 查询数据
我正在努力查询数据作为示例
我的愿望结果
结果的规则
- 使用 Customer Register_status 必须显示最新状态
- 日期必须是更改最后状态的第一个日期
- 如果 Customer_Register_Status 永远不会更改显示,则必须显示交易的第一个日期
请指导我如何创建查询以获取结果
mysql - 两个值之间的 SQL 标准
我想知道,当我们使用“介于”时,SQL 标准或 MySQL 是否存在差异。更准确地说,如果我这样做,在 SQL 标准中:
是否等于:
MySQL中的结果是否相同。
sql - SQL Server - 具有相关性的条件聚合
背景:
原来的情况很简单。从最高收入到最低计算每个用户的总收入:
询问:
输出:
它可以使用特定的窗口函数进行不同的计算。
现在让我们假设我们不能使用 windowedSUM
并重写它:
我使用过CROSS APPLY
是因为我不喜欢SELECT
列列表中的相关子查询并且c3
被使用了两次。
一切正常。但是当我们仔细观察时c2
,又c3
是非常相似的。那么为什么不将它们结合起来并使用简单的条件聚合:
不幸的是,这是不可能的。
在包含外部引用的聚合表达式中指定了多个列。如果要聚合的表达式包含外部引用,则该外部引用必须是表达式中引用的唯一列。
当然我可以用另一个子查询来绕过它,但它变得有点“丑陋”:
Postgresql
版本。唯一的区别是LATERAL
代替CROSS APPLY
.
它工作得很好。
SQLite
/MySQL
版本(这就是我喜欢的原因LATERAL/CROSS APPLY
):
SQLFiddleDemo-SQLite
SQLFiddleDemo-MySQL
我读过带有外部参考的聚合:
限制的来源在
SQL-92
标准中,并SQL Server
从Sybase
代码库继承。问题是 SQL Server 需要确定哪个查询将计算聚合。
我不寻找仅显示如何规避它的答案。
问题是:
- 标准的哪一部分不允许或干扰它?
- 为什么其他 RDBMS 对这种外部依赖没有问题?
- 它们是否按照应有的方式扩展
SQL Standard
和SQL Server
运行,或者SQL Server
没有完全实现(正确?)?
我将非常感谢参考:
ISO standard
(92 或更新)- SQL Server 标准支持
- 来自任何 RDBMS 的官方文档来解释它(
SQL Server/Postgresql/Oracle/...
)。
编辑:
我知道SQL-92
没有LATERAL
. 但是带有子查询的版本(如 in SQLite/MySQL
)也不起作用。
编辑2:
为了简化一点,让我们只检查相关子查询:
上面的版本在MySQL/SQLite/Postgresql
.
在SQL Server
我们得到错误。在用子查询包装它以将其“展平”到一个级别后,它可以工作:
这个问题的重点是如何SQL standard
规范它。
google-bigquery - 使用标准 SQL 的 BigQuery 表装饰器
我在使用使用标准 SQL 的表装饰器时遇到了一些麻烦。但是,与 Legacy SQL 语法相同的概念对我有用。这是一个错误吗?这是一个例子。
(A) 以下查询没有任何问题
SELECT COUNT(*) FROM [some-project-name:some_dataset.some_table_name@<time1>-<time2>]
(B) 以下查询返回错误消息
Error: Table "some-project-name.some_dataset.some_table_name@<time1>-<time2>" cannot include decorator
SELECT COUNT(*) FROM `some-project-name.some_dataset.some_table_name@<time1>-<time2>`
笔记:
- 查询 (A) 已选中Use Legacy SQL 框。
- 查询 (B)未选中Use Legacy SQL 框。
<time1>
是绝对的,是自 Unix 纪元以来表的创建时间,以毫秒为单位。<time2>
是以毫秒为单位的当前时间戳
更新:
正如 Mikhail 所指出的,此功能不适用于标准 SQL。已在此处请求。
string - Google Big Query 中倒数第三个子字符串
我使用标准 sql 并想从末尾提取第三个子字符串。
sql - SQL 语句 OR:显示每一行,其中的值出现故障
我有一个非常具体的问题:
我在 Access 中有一个公司列表和该公司的不同角色,所有内容都在一个表中,如下所示:
公司 // 角色 1 // 角色 2 // 角色 3 // 角色 4 //
Comp1 // 泰德 // // // 吉米 //
Comp2 // Lin // Ted // 安迪 // //
等等...
我现在需要创建一个 sql 语句,它为我提供了 Ted 作为示例在其中发挥作用的每一家公司(行)。
我在 SQL 下的 Access 中尝试过这样 - 语句:
但随后它只显示 Ted 在第一列中的行,我知道其中可能存在愚蠢的错误,我已经遇到了这个问题,但我不记得上次我是如何解决的。
如果你能帮忙就好了,因为我真的需要它来工作
sql - 错误附近的语法不正确
我对这段代码有疑问,错误是附近的语法不正确,请帮助。
sql - sql标准中表名的定义是什么
我浏览 了ISO/IEC 9075:1992,我没有找到任何关于表名定义的信息,比如应该使用什么样的字符,长度的限制。而且我还浏览了ISO/IEC 9075:2011,关于token的词汇定义对我来说真的很难,我看不懂。谁能为我解释一下?这个问题可以简化为这个问题,可以按照标准在表名中使用句点等特殊字符吗?
sql - SQL标准中真的有必要有GROUP BY吗
在写了几年 SQL 之后,我发现必须将我感兴趣的列SELECT
然后在GROUP BY
. 我不禁想,我们为什么要这样做?
用户必须具体说明要分组的列的原因是什么?我们不能让 SQL 引擎假设是否存在聚合函数SELECT
,按其余非聚合列分组吗?
当您有大量CASE WHEN
的SELECT
.