如何将函数结果用作别名?

Rom*_*man 5 sql

我想知道是否可以使用SQL函数来命名查询的列.举个简单的例子:

SELECT id AS SUBSTR('xAlias', 2) FROM foo
Run Code Online (Sandbox Code Playgroud)

理论上应该回归

Alias
------
...
results
...
Run Code Online (Sandbox Code Playgroud)

如果可以,可以使用哪些数据库?如果没有,那么为什么呢?

Ric*_*iwi 3

AFAIK,在任何主要的 DBMS 产品中都没有 SQL 方式来支持这一点。

在 Oracle 中命名 PIVOT 列for name in.. as似乎是最好的选择。
除此之外,就到了动态 SQL 了。


原答案如下

要命名查询的列,ANSI 标准只需在列(派生列或基列)后面添加新名称,并在前面加上“AS”:

SELECT id, field1, field2 * qty FROM foo
Run Code Online (Sandbox Code Playgroud)

所有列重命名如下:

SELECT id AS RenamedID, field1 AS Col1, field2 * qty AS ExtendedTotal FROM foo
Run Code Online (Sandbox Code Playgroud)

该标准适用于几乎所有主要数据库系统。
有一些供应商特定的变体,例如 SQL Server 允许等号

SELECT RenamedID=id FROM foo
Run Code Online (Sandbox Code Playgroud)

大多数 DBMS 允许省略“AS”关键字

SELECT id RenamedID FROM foo
Run Code Online (Sandbox Code Playgroud)