“case when”语法和sql中使用“months_between”函数 (1)

SQL:

SELECT u.*,
       CASE
         WHEN u.RYZT = 1 AND
              MONTHS_BETWEEN(TO_DATE(u.HTJSSJ, 'YYYY-MM-DD'), SYSDATE) > 0 AND
              MONTHS_BETWEEN(TO_DATE(u.HTJSSJ, 'YYYY-MM-DD'), SYSDATE) < 1 THEN
          1
         WHEN u.RYZT = 1 AND
              MONTHS_BETWEEN(TO_DATE(u.HTJSSJ, 'YYYY-MM-DD'), SYSDATE) < 1 THEN
          2
         ELSE
          0
       END as sfdq,
       dw.DWMC
  FROM B_TZ_RYGL_RYXX u

case when :满足when后面的条件的时候,字段值设值。上例满足第一个when,新字段sfdq赋‘1’。满足第二个when,新字段sfdq赋‘2’,否则赋‘0’。经过尝试,貌似end后面的‘as’并不是必须加上去的。实际搜索后如图。



版权声明:本文为u011232863原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。