乱码乱a∨中文字幕,在线免费激情视频,亚洲欧美久久夜夜潮,国产在线网址

  1. <sub id="hjl7n"></sub>

    1. <sub id="hjl7n"></sub>

      <legend id="hjl7n"></legend>

      當前位置:首頁 >  站長 >  數(shù)據(jù)庫 >  正文

      postgreSQL中的case用法說明

       2021-05-26 16:54  來源: 腳本之家   我來投稿 撤稿糾錯

        阿里云優(yōu)惠券 先領券再下單

      這篇文章主要介紹了postgreSQL中的case用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧。

      工具:postgreSQL

      Navicat Premium

      又一次在看代碼的時候,發(fā)現(xiàn)了不懂的東西!

      這次就是case when then

      SQL CASE表達式是一種通用的條件表達式,類似于其它語言中的if/else語句。

       CASE WHEN condition THEN result
        [WHEN ...]
        [ELSE result]
       END

       

      解釋:

      condition是一個返回boolean的表達式。

      如果為真,那么CASE表達式的結(jié)果就是符合條件的result。

      如果結(jié)果為假,那么以相同方式 搜尋隨后的WHEN子句。

      如果沒有WHEN condition為真,那么case表達式的結(jié)果就是在ELSE子句里的值。

      如果省略了ELSE子句而且沒有匹配的條件,結(jié)果為NULL。

      1select * from city

      我們的測試數(shù)據(jù):

      select SUM(city_id),case name
      when '北京' then '古都'
      when '西安' THEN '古都'
      when '上海' THEN '魔都'
      when 'NewYork' then '紐約'
      else '其他城市' END
      from city
      GROUP BY
      case name
      when '北京' then '古都'
      when '西安' THEN '古都'
      when '上海' THEN '魔都'
      when 'NewYork' then '紐約'
      else '其他城市' END

       

      結(jié)果如下:

      select sum(city_id),CASE
      when city_id < 3 then '小于3'
      when city_id > 8 then '大于8'
      else '大于3小于8' END
      FROM city
      group by
      CASE
      when city_id < 3 then '小于3'
      when city_id > 8 then '大于8'
      else '大于3小于8' END
      order by
      CASE
      when city_id < 3 then '小于3'
      when city_id > 8 then '大于8'
      else '大于3小于8' END DESC

       

      結(jié)果如下:

      根據(jù)上面兩個例子可以明確的看出:

      第一:為了在 GROUP BY 塊中使用 CASE,查詢語句需要在 GROUP BY 塊中重復 SELECT 塊中的 CASE 塊

      第二:為了在ORDER BY塊中使用CASE,查詢語句需要在ORDER BY塊中重復SELECT 塊中的 CASE 塊

      第三:如果要比較的數(shù)據(jù)為數(shù)字,則在case 后不能寫 字段名,如果要比較的數(shù)據(jù)為字符,則要在case后寫上字段名

      補充:Postgresql中(case、when)的用法

      1.case when

      (
          case
          when substr(starttime::varchar,0,5)='2020' then '2020年'
          when substr(starttime::varchar,0,5)='2019' then '2019年'
          when substr(starttime::varchar,0,5)='2018' then '2018年'
          when substr(starttime::varchar,0,5)='2017' then '2017年'
          when substr(starttime::varchar,0,5)='2016' then '2016年'
          when substr(starttime::varchar,0,5)='2015' then '2015年'
          when substr(starttime::varchar,0,5)='2014' then '2014年'
          when substr(starttime::varchar,0,5)='2013' then '2013年'
          when substr(starttime::varchar,0,5)='2012' then '2012年'
          when substr(starttime::varchar,0,5)='2011' then '2011年'
          when substr(starttime::varchar,0,5)='2010' then '2010年'
          when starttime is null then '其他年份' end
       ) AS year

       

      2.mybatis中判斷某個傳參是否為空

      <if test="geojsonString !=null and geojsonString !=''">
            WHERE
            st_intersects(geom,st_geomfromgeojson(#{geojsonString}))
      </if>

      文章來源:腳本之家

      來源地址:https://www.jb51.net/article/204851.htm

      申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

      相關文章

      熱門排行

      信息推薦