SQL取数问题

当前时间为第一季度取    Q1这一列的CA,第二季度取Q2这一列的CA,第三季度取Q3这一列的CA,第四季度取Q4这一列的CA ,然后再进行计算,也就是说每个季度取不同的列来计算,如何取值,pgsql

image.png

1楼:

select 

if(quarter(now())=1,q1,

  if(quarter(now())=2,q2,

  if(quarter(now())=3,q3,

  if(quarter(now())=4,q4,'')

)

)

  ) number

from table

where 类型='ca'

PG似乎没有IF语句,我在MYSQL试了下可以

——————————————————————————————————

二楼:

SELECT 

   类型,

   (CASE 

   WHEN EXTRACT(quarter FROM now()::timestamp) = 1 THEN q1 

   WHEN EXTRACT(quarter FROM now()::timestamp) = 2 THEN q2

           WHEN EXTRACT(quarter FROM now()::timestamp) = 3 THEN q3 

ELSE q4 END) NUMBER

FROM 

     table

WHERE 

    类型='ca'

函数稍有改动,习惯这样case when

一直想着用变量了,没想到这样取数…采纳第一个评论的咯感谢

Srafy 发布于 2021-9-28 17:09 (编辑于 2021-9-28 18:24)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
free_zzLv6中级互助
发布于2021-9-28 17:11(编辑于 2021-9-28 17:21)

select 

if(quarter(now())=1,q1,if(quarter(now())=2,q2,if(quarter(now())=3,q3,if(quarter(now())=4,q4,"")))

from table

where 类型="CA"

也可以用case when,我比较习惯用if一样的

  • Srafy Srafy(提问者) 完善了一下,意思就是当前时间是第几季度就取第几季度的CA值
    2021-09-28 17:15 
最佳回答
0
ColdmanLv6高级互助
发布于2021-9-28 17:19(编辑于 2021-9-28 17:21)

mysql写法:

判断当前月份是几月,使用case when 来取值

SELECT 

类型,

case QUARTER(NOW()) when 1 then q1 when 2 then q2……(自己补全) else q4 end

FROM 

test

  • 3关注人数
  • 516浏览人数
  • 最后回答于:2021-9-28 18:24
    请选择关闭问题的原因
    确定 取消
    返回顶部