Постгрес дело - PullRequest
       8

Постгрес дело

1 голос
/ 12 октября 2010

В настоящее время я работаю с некоторым из старого кода 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)",

1 Ответ

3 голосов
/ 12 октября 2010

Они эквивалентны like / ilike:

Из документации

Оператор ~~ эквивалентен LIKE, и ~~ * соответствует ILIKE. Там также! ~~ и! ~~ * операторы, которые представлять не нравится и не похоже, соответственно. Все эти операторы являются специфичными для PostgreSQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...