Добавление статического значения к результатам SQL-запроса
Мне интересно, есть ли способ выполнить это с помощью SQL-запроса.
У меня есть таблица, давайте назовем ее "LISTOFTHINGS", которая имеет два поля "ID" и "NAMEOFTHING"
Я хочу создать запрос таким образом, чтобы возвращаемые результаты были результатом этого запроса:
SELECT ID, NAMEOFTHING FROM LISTOFTHINGS ORDER BY NAMEOFTHING
и добавляет строку перед первой строкой указанного выше запроса, которая имеет "-1", "ВСЕ ВЕЩИ" в качестве значений.
Итак, если таблица имеет следующие три записи:
1, 'THING 1'
3, 'THING 3'
2, 'THING 2'
Тогда результат, который я хочу, выглядит так:
-1, 'ALL THINGS'
1, 'THING 1'
2, 'THING 2'
3, 'THING 3'
Я знаю, что могу выполнить запрос и создать список с кодом, но внутри программы VB6, где я использую это, у меня есть стороннее приложение (для которого у меня нет кода), который берет запрос для заполнения элемента управления ACTIVEX результатами. У меня нет крючков для добавления статического значения.
Я также знаю, что могу просто поместить запись в таблицу для "-1," ВСЕ ВЕЩИ ", но проблема в том, что если я это сделаю, мне нужно будет изменить много мест в программе, чтобы игнорировать это запись при осуществлении обработки.
Значение "ВСЕ ВЕЩИ" - это псевдо-запись, которая обрабатывает специальный случай для одной части программы.
Ответы
Ответ 1
Вы можете сделать объединение в запросе?
SELECT -1 AS ID , 'ALL THINGS' AS NAMEOFTHING FROM DUAL /*'FROM DUAL' is an Oracle thing,
not sure if you need to do
something like that in DB2*/
UNION
SELECT ID, NAMEOFTHING FROM LISTOFTHINGS ORDER BY NAMEOFTHING
По-видимому, так должно быть сделано для DB2
SELECT -1 AS ID , 'ALL THINGS' AS NAMEOFTHING FROM SYSIBM.SYSDUMMY1
UNION
SELECT ID, NAMEOFTHING FROM LISTOFTHINGS ORDER BY NAMEOFTHING
Ответ 2
Попробуйте следующее:
SELECT -1 AS ID, 'ALL THINGs' AS NAMEOFTHING FROM SYSIBM.SYSDUMMY1
UNION
SELECT ID, NAMEOFTHING FROM LISTOFTHINGS