sql - 使用 VALUE 制作临时表
问题描述
以下查询中虚拟函数 abc123() 的目的是什么?它们都可以工作,但我不明白对虚拟功能的需求。
我试图删除它,但总是有语法错误。
SELECT MAX(NumbersTable) AS NumbersTable
FROM ( VALUES (1), (3), (2) ) AS abc123(NumbersTable)
SELECT TOP 1 NumbersTable
FROM ( VALUES (1), (3), (2) ) AS abc123(NumbersTable)
ORDER BY NumbersTable DESC
我希望结果是 3,这就是我得到的。
解决方案
它不是一个函数。它定义了由values
. 是abc123
表别名。NumbersTable
是列的名称。
如果你运行:
SELECT *
FROM ( VALUES (1), (3), (2) ) AS abc123(NumbersTable)
你会看见:
NumbersTable
1
2
3
因为NumbersTable
是列的名称。你也可以写:
SELECT abc123.NumbersTable
FROM ( VALUES (1), (3), (2) ) AS abc123(NumbersTable)
推荐阅读
- apache-spark - 如何使用 spark sql 函数删除特定列值的 2 个或多个特殊字符:regexp_replace?
- amazon-web-services - 减小 Ubuntu EC2 实例中根 EBS 卷的大小
- javascript - MongoDB聚合查找不适用于多个参数
- c++ - 在 Mac OS X Catalina 上编译 R 4.0 中的 C++ 代码时出错
- android - android - 在内存中共享一个对象
- amazon-web-services - 在 Amazon Web Services EKS 上安装 RabbitMQ
- r - 每月固定利率且每年增加存款的总存款是多少?
- java - 如何在Android Studio上将句子中的单词斜体?
- google-maps-api-3 - Google Maps Geocoding API 停止工作(简单?)
- selenium - 并行测试线程获取孤立的 Selenium