Sql 产后病例统计
我目前正在使用我老师的一些旧Postgres SQL代码,并对其进行修改以满足我的需要。然而,有一段代码我在网上找不到解释。在代码中,他使用了一个带有~~*的case语句作为比较。我不熟悉这种语法,非常感谢您的帮助。提前谢谢Sql 产后病例统计,sql,postgresql,Sql,Postgresql,我目前正在使用我老师的一些旧Postgres SQL代码,并对其进行修改以满足我的需要。然而,有一段代码我在网上找不到解释。在代码中,他使用了一个带有~~*的case语句作为比较。我不熟悉这种语法,非常感谢您的帮助。提前谢谢 CASE WHEN sessions.status ~~* 'data%finder%'::text THEN ((sessions.minutes_in_data_ || ' ('::text) || sessions.minutes_in_idle) |
CASE
WHEN sessions.status ~~* 'data%finder%'::text THEN ((sessions.minutes_in_data_ || ' ('::text) || sessions.minutes_in_idle) || ')'::text
WHEN sessions.status ~~* 'text%edit%'::text THEN ((sessions.minutes_in_text_editor || ' ('::text) || sessions.minutes_in_idle) || ')'::text
WHEN sessions.status ~~* 'admin%module%'::text AND sessions.minutes_in_module<> 0 THEN ((sessions.minutes_in_module|| ' ('::text) || sessions.minutes_in_idle) || ')'::text
WHEN sessions.status ~~* 'client%module%'::text AND sessions.minutes_in_module<> 0 THEN ((sessions.minutes_in_module|| ' ('::text) || sessions.minutes_in_idle) || ')'::text
ELSE NULL::text
END AS "Duration (Idle)",
案例
当sessions.status~~*'data%finder%'::text然后((sessions.minutes_in_data 124; | | |'('::text)| | sessions.minutes_in_idle)| | |')::text
当sessions.status~*'text%edit%'::text然后((sessions.minutes_在文本编辑器中)('::text)| | sessions.minutes_在空闲中)| |])::text
当sessions.status~*'admin%module%'::text和sessions.minutes_在_模块0中时((sessions.minutes_在|模块| |'('::text)| sessions.minutes_在| |')::text
当sessions.status~*'client%module%':text和sessions.minutes_在_模块0中时((sessions.minutes_在|模块| |'('::text)| sessions.minutes_在| |')::text
ELSE NULL::text
以“持续时间(空闲)”结束,
它们相当于like
/ilike
:
从
运算符~~相当于LIKE,
和~~*对应于ILIKE。那里
也都是~~还有!~~*运营商
代表不喜欢也不喜欢,
分别地所有这些运营商
是特定于PostgreSQL的
检查此链接