gpt4 book ai didi

SQL 使用中间结果

转载 作者:行者123 更新时间:2023-11-29 14:31:22 29 4
gpt4 key购买 nike

我有一列包含数字( float )的列,我想将其分类并存储为整数和标签(字符串)。现在假设该类别仅由 FLOOR(x) 定义。

这个有效:

SELECT salary,
FLOOR(salary) AS category_integer,
CASE WHEN FLOOR(salary) = 0
THEN 'foo'
ELSE 'bar'
END AS category_label
FROM test01

但我想知道我是否可以在后面的部分使用查询开头定义的中间变量“category_integer”,如下所示:

SELECT salary,
FLOOR(salary) AS category_integer,
CASE WHEN category_integer = 0
THEN 'foo'
ELSE 'bar'
END AS category_label
FROM test01

但这显然不是 SQL 的工作原理。我研究了 Common table Expressions 但在那里迷路了。有没有办法在 SQL 表达式中重用中间变量?

SQL Fiddle

我一定是错过了这个,但到目前为止我找不到相关的问题。

最佳答案

您可以求助于公用表表达式 - 基本上是一种查询,它会生成您可以在后续查询中引用的带标签的结果集。

适应你的例子:

with cte as (
select salary
, floor(salary) as category_integer
from test01
)
SELECT salary
, category_integer
, CASE WHEN category_integer = 0
THEN 'foo'
ELSE 'bar'
END AS category_label
FROM cte
;

有关更多详细信息,请参阅引用资料:CTE / WITH in pgSQL 9.6 .

SQL fiddle 中查看它的工作情况| .

关于SQL 使用中间结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51301007/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com