operator *=

Поиск
Список
Период
Сортировка
От Sascha Ziemann
Тема operator *=
Дата
Msg-id m3emcw9s75.fsf@intra.do.khs-ag.de
обсуждение исходный текст
Ответы Re: [GENERAL] operator *=
Список pgsql-general
Hi,

I have two tables "user_t" and "email_alias_t".  The "user_t" table
has the two fields "last_name" and "linux_login" and the
"email_alias_t" table has the two fields "login" and "alias".

In some rows in the "user_t" table the entry "linux_login" is NULL.

Now I need all rows from "user_t" and for those rows which have a
"linux_login" I need the "alias" column from "email_alias_t".

My SQL book descibes the *= operator which should be used for those
queries but Postgres does not have it.  I found out that it is
possible to do the select with a union.  This union:

    select last_name, direct_inward_number, linux_login, alias
    from user_t, email_alias_t
    where last_name LIKE 'Ni%' AND linux_login = login
    union
    select last_name, direct_inward_number, linux_login, linux_login
    from user_t
    where last_name LIKE 'Ni%' AND linux_login = NULL
    order by 1;

produces the right output:

    last_name|direct_inward_number|linux_login|alias
    ---------+--------------------+-----------+-----------------
    Niebisch |                2608|jni00514   |niebisch.jaroslaw
    Nienaß   |                1365|           |
    Nilles   |                2478|pni00423   |nilles.peter
    Nix      |                2358|yni00155   |nix.yvonne

My question: Is such a union the only way to emulate the *= operator
in Postgres or is there a better way?

bis später...
Sascha

В списке pgsql-general по дате отправления:

Предыдущее
От: Stuart Rison
Дата:
Сообщение: Re: [GENERAL] get the previous assigned sequence value
Следующее
От: Adriaan Joubert
Дата:
Сообщение: Re: [GENERAL] get the previous assigned sequence value