我目前正在使用我老师的一些旧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)",
最佳答案
它们相当于:
从documentation
接线员~~相当于LIKE,
而~~*对应于ILIKE。在那里
也是!~~还有!~~*运算符
代表不喜欢和不喜欢,
分别是。所有这些操作员
是PostgreSQL特有的。
关于sql - Postgres案情陈述,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3916010/