sql - sql 中有没有办法在 SELECT 语句中使用派生列来创建更多依赖列而不使用临时表?
问题描述
假设我有类似下面的内容。我认为不可能将新创建rowid
的用作case when
var 的条件,还是我错了?我可以创建一个临时表,但是否有另一种方法可以rowid
用作新case when
变量的条件,最好不使用临时表?
select
* from (select ROW_NUMBER()OVER(partition by id ORDER BY id) as rowid ,
case when rowid > 1 then 'a' else 'b' end as newvar
from tableA) as A
解决方案
您的查询应如下所示:
SELECT * FROM (
select CASE ROW_NUMBER()OVER(partition by id ORDER BY id) > 1 then 'a' else 'b' end as newvar
from tableA ) AS A
推荐阅读
- python-3.x - 追加到对象内的列表,更新所有其他对象
- jira - 三角帆吉拉舞台。如何将创建的 jira 票证作为管道工件?
- kubernetes - 如何在 Live Cluster 上设置云提供商
- selenium - 面对 javascript 错误:无法在“文档”上执行“elementsFromPoint”:提供的双精度值是非有限的
- java - MongoDB - Spring Data - 在保存条件时增加字段
- json - 没有与键 CodingKeys 关联的值
- python - Python 的多项朴素贝叶斯从零开始
- javascript - 有没有办法使用 javascript 从 Google Docs、Slides 等收集事件?
- flutter - 将 API(模型类)传递给小部件
- c++ - 性能损失:非规范化数字与分支错误预测