Добавить строку в результат запроса, используя select - PullRequest
62 голосов
/ 10 апреля 2009

Можно ли расширить результаты запроса с помощью литералов, подобных этому?

select name from users
union
select name from ('JASON');

или

select age, name from users
union
select age, name from (25,'Betty');

поэтому он возвращает все имена в таблице плюс «JASON» или (25, «Betty»).

Ответы [ 3 ]

80 голосов
/ 10 апреля 2009

Вы используете это так:

SELECT  age, name
FROM    users
UNION
SELECT  25 AS age, 'Betty' AS name

Используйте UNION ALL, чтобы разрешить дубликаты: если среди ваших пользователей есть 25-летняя Бетти, второй запрос не выберет ее снова с простым UNION.

18 голосов
/ 10 апреля 2009

В SQL Server вы бы сказали:

Select name from users
UNION [ALL]
SELECT 'JASON'

В Oracle вы бы сказали

Select name from user
UNION [ALL]
Select 'JASON' from DUAL
13 голосов
/ 10 апреля 2009

возможно ли расширить результаты запроса с помощью литералов, подобных этому?

Да.

Select Name
From Customers
UNION ALL
Select 'Jason'
  • Используйте UNION, чтобы добавить Джейсона, если его еще нет в наборе результатов.
  • Используйте UNION ALL, чтобы добавить Джейсона, независимо от того, находится ли он уже в наборе результатов.
...