gpt4 book ai didi

sql - 如何在没有代码重复的情况下获得值 x

转载 作者:行者123 更新时间:2023-12-04 18:45:01 25 4
gpt4 key购买 nike

创建表 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/

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