
地 址:上海市宝山66号
电 话:17730087525
网址:dsesh.com
这篇文章主要介绍了postgreSQL中的用(yong)法case用(yong)法说明,具有(you)很好的说明参考价值,希望对大家有所帮助。用法一起跟随小编过来看看吧。说明

Navicat Premium

又一次在看(kan)代码的用法时候,发现了不懂的说明东西!

这次就(jiu)是用法case when then
CASE WHEN condition THEN result
[WHEN ...]
[ELSE result]
END
解(jie)释:
condition是用法一个返回(hui)boolean的表达式。
如(ru)果为真,说明那么(me)CASE表达(da)式的(de)用法结果就是符合条件的(de)result。
如果结(jie)果为假,说明那么以相同方(fang)式 搜寻随后的(de)用法WHEN子句。
如果没有WHEN condition为真,说明那么case表达式的用法结果就是在ELSE子句里的值。
如(ru)果省略了(le)ELSE子句而(er)且没有匹配的条件(jian),结果为NULL。
1select * from city
我(wo)们的测试数据:
select SUM(city_id),case name
when '北京' then '古都(dou)'
when '西安' THEN '古都'
when '上海' THEN '魔都'
when 'NewYork' then '纽约'
else '其他城市' END
from city
GROUP BY
case name
when '北(bei)京' then '古都(dou)'
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 '大(da)于8'
else '大于3小(xiao)于(yu)8' END
FROM city
group by
CASE
when city_id < 3 then '小于(yu)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 块中使(shi)用 CASE,查询语句需要在 GROUP BY 块中重复 SELECT 块中的 CASE 块
第二:为了在ORDER BY块中使用CASE,查询语句需要在ORDER BY块中重复SELECT 块中的 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年(nian)'
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