作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
创建表 t(a int, b int);
插入 t 值 (1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,1),(3,2) ),(3,3);
从 t 中选择 *;
|乙
----------
1 | 1
1 | 2
1 | 3
2 | 1
2 | 2
2 | 3
3 | 1
3 | 2
3 | 3
选择
max(case when a = 1 then b else 0 end) as q,
max(case when b = 1 then a else 0 end) as c,
(
最大值(当 a = 1 然后 b 否则 0 结束)
+
最大值(当 b = 1 然后 a else 0 结束的情况)
) 作为 x
从T
有可能做这样的事情吗?
选择
max(case when a = 1 then b else 0 end) as q,
max(case when b = 1 then a else 0 end) as c,
(q + c) 作为 x
从T
最佳答案
您不能使用 ALIAS
这是在 SELECT
的同一级别上给出的条款。
你有两个选择:
select
max(case when a = 1 then b else 0 end) as q,
max(case when b = 1 then a else 0 end) as c,
(max(case when a = 1 then b else 0 end) + max(case when b = 1 then a else 0 end)) as x
from t
SELECT q,
c,
q + c as x
FROM
(
select
max(case when a = 1 then b else 0 end) as q,
max(case when b = 1 then a else 0 end) as c
from t
) d
关于sql - 如何在没有代码重复的情况下获得值 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16315240/
我是一名优秀的程序员,十分优秀!