濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > postgreSQL中的case用法說(shuō)明

postgreSQL中的case用法說(shuō)明

熱門(mén)標(biāo)簽:廣州電銷(xiāo)機(jī)器人公司招聘 400電話申請(qǐng)客服 江蘇400電話辦理官方 天津開(kāi)發(fā)區(qū)地圖標(biāo)注app 地圖標(biāo)注要花多少錢(qián) 電銷(xiāo)機(jī)器人能補(bǔ)救房產(chǎn)中介嗎 電話機(jī)器人怎么換人工座席 移動(dòng)外呼系統(tǒng)模擬題 濟(jì)南外呼網(wǎng)絡(luò)電話線路

工具:postgreSQL

Navicat Premium

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

這次就是case when then

SQL CASE表達(dá)式是一種通用的條件表達(dá)式,類(lèi)似于其它語(yǔ)言中的if/else語(yǔ)句。

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

解釋?zhuān)?/p>

condition是一個(gè)返回boolean的表達(dá)式。

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

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

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

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

select * from city

我們的測(cè)試數(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ù)上面兩個(gè)例子可以明確的看出:

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

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

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

補(bǔ)充: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中判斷某個(gè)傳參是否為空

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

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 解決postgresql 數(shù)字轉(zhuǎn)換成字符串前面會(huì)多出一個(gè)空格的問(wèn)題
  • PostgreSQL 遠(yuǎn)程連接配置操作
  • postgreSQL中的內(nèi)連接和外連接實(shí)現(xiàn)操作
  • 基于postgreSql 常用查詢小結(jié)
  • postgresql 查詢字符串中是否包含某字符的操作
  • postgresql 替換空格 換行和回車(chē)的操作

標(biāo)簽:寶雞 濮陽(yáng) 昭通 溫州 杭州 榆林 辛集 海西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《postgreSQL中的case用法說(shuō)明》,本文關(guān)鍵詞  postgreSQL,中的,case,用法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《postgreSQL中的case用法說(shuō)明》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于postgreSQL中的case用法說(shuō)明的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    板桥市| 拉萨市| 县级市| 阜宁县| 武义县| 郯城县| 富宁县| 房产| 昭平县| 上饶县| 霍林郭勒市| 辽阳市| 叶城县| 香格里拉县| 红河县| 百色市| 周口市| 岱山县| 台南市| 廉江市| 滦平县| 云龙县| 泸定县| 青岛市| 隆子县| 白水县| 健康| 建平县| 屏南县| 怀集县| 元阳县| 宜州市| 忻城县| 鹤山市| 胶州市| 秭归县| 余干县| 澎湖县| 聊城市| 嘉黎县| 虞城县|