最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

postgreSQL中的case用法說明

 更新時間:2021年01月27日 08:39:55   作者:安善良民弱女子  
這篇文章主要介紹了postgreSQL中的case用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

工具:postgreSQL

Navicat Premium

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

這次就是case when then

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

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

解釋:

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

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

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

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

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

select * 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 塊中重復(fù) SELECT 塊中的 CASE 塊

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

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

補(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中判斷某個傳參是否為空

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

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

相關(guān)文章

最新評論

云梦县| 冀州市| 苏尼特左旗| 宜丰县| 昌黎县| 开原市| 美姑县| 杂多县| 永吉县| 彭州市| 浏阳市| 铅山县| 莫力| 梨树县| 开鲁县| 浮梁县| 尼木县| 叶城县| 四子王旗| 高尔夫| 邳州市| 尤溪县| 河东区| 汕尾市| 田林县| 织金县| 阳山县| 额济纳旗| 子洲县| 衡水市| 阳春市| 高平市| 侯马市| 通江县| 开江县| 保德县| 个旧市| 渭源县| 普格县| 普兰店市| 南昌市|