校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > postgreSQL中的case用法說明

postgreSQL中的case用法說明

熱門標簽:廣州電銷機器人公司招聘 400電話申請客服 江蘇400電話辦理官方 天津開發區地圖標注app 地圖標注要花多少錢 電銷機器人能補救房產中介嗎 電話機器人怎么換人工座席 移動外呼系統模擬題 濟南外呼網絡電話線路

工具:postgreSQL

Navicat Premium

又一次在看代碼的時候,發現了不懂的東西!

這次就是case when then

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

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

解釋:

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

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

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

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

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

select * from city

我們的測試數據:

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

結果如下:

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

結果如下:

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

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

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

第三:如果要比較的數據為數字,則在case 后不能寫 字段名,如果要比較的數據為字符,則要在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>

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 解決postgresql 數字轉換成字符串前面會多出一個空格的問題
  • PostgreSQL 遠程連接配置操作
  • postgreSQL中的內連接和外連接實現操作
  • 基于postgreSql 常用查詢小結
  • postgresql 查詢字符串中是否包含某字符的操作
  • postgresql 替換空格 換行和回車的操作

標簽:寶雞 濮陽 昭通 溫州 杭州 榆林 辛集 海西

巨人網絡通訊聲明:本文標題《postgreSQL中的case用法說明》,本文關鍵詞  postgreSQL,中的,case,用法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《postgreSQL中的case用法說明》相關的同類信息!
  • 本頁收集關于postgreSQL中的case用法說明的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 镇平县| 乌苏市| 民权县| 仪征市| 峨山| 湟源县| 依安县| 中方县| 宾阳县| 芦山县| 瑞丽市| 田东县| 龙南县| 务川| 仪陇县| 天等县| 禄丰县| 丰城市| 余庆县| 沿河| 襄城县| 汉川市| 博湖县| 山阳县| 江城| 涿鹿县| 鄂托克前旗| 荃湾区| 佛山市| 扶沟县| 汉寿县| 安吉县| 娱乐| 湖南省| 鄯善县| 基隆市| 汾西县| 敦化市| 临洮县| 武功县| 泾源县|