postgresql - “选择 ;” 为什么postgresql中存在这个语句
问题描述
查询:
select ;
在 postgresql 中有效。它返回一个没有属性的元组。
# select ;
--
(1 row)
它具有清晰的语义,结果可以用作子查询:
# select 1 from (select ) as rip;
?column?
----------
1
(1 row)
事实上,可以使用它创建一个没有属性的表。甚至可以添加元组!
但我的问题是,它为什么存在?
我在没有 from 子句的 select 中看到了值,因为 psql 可以用作计算器:
# select 3 * 6;
?column?
----------
18
(1 row)
和或用于调用 UDF。
但我无法想象用于select ;
它很有用还是postgresql解析器的奇怪之处?
解决方案
看这里:
https://www.postgresql.org/docs/current/sql-select.html
空 SELECT 列表
SELECT 之后的输出表达式列表可以为空,生成一个零列的结果表。根据 SQL 标准,这不是有效的语法。PostgreSQL 允许它与允许零列表保持一致。但是,当使用 DISTINCT 时,不允许使用空列表。
推荐阅读
- powershell - PowerShell Trim() 的问题,它也会在反斜杠之前修剪掉一个字母
- javascript - 在Javascript(NodeJS)中调用rest api并返回响应未定义
- mongodb - 为什么 $group 聚合速度很慢,如何在 MongoDB 中加快聚合速度
- elasticsearch - 在 ElasticSearch 文档中将 NonNested 属性更新为嵌套类型
- html - Angular 创建垂直时间线
- git - Git - .gitconfig 中第 69 行的错误配置
- powershell - 无法使用 PowerShell 在远程计算机上运行参数化批处理文件
- ios - 如何通过自动布局管理自适应布局
- css - 输入[type=radio]:在收音机伸出之前
- javascript - OHLC 工具提示在股票图表(highstock)中也被复制到成交量图表?