我目前正在使用我的一些老教师的旧Postgres SQL代码并对其进行修改以符合我的需要。但是,有一段代码我似乎无法在网上找到任何解释。在代码中,他有一个带有~~ *的case语句,用作看似比较的东西。我不熟悉这种语法,非常感谢任何帮助。提前谢谢。
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)",
答案 0 :(得分:3)
它们相当于like
/ ilike
:
操作员~~相当于LIKE, 和~~ *对应ILIKE。那里 也是!~~和!~~ *运营商 代表不喜欢而不是ILIKE, 分别。所有这些运营商 是PostgreSQL特有的。