web-dev-qa-db-ja.com

SQLクエリの結果に静的な値を追加する

SQLクエリでこれを実現する方法があるかどうか疑問に思っています。

私はテーブルを持っています。それを「LISTOFTHINGS」と呼びましょう

私がやりたいのは、返されるものがこのクエリの結果になるようにクエリを構築することです:

SELECT ID, NAMEOFTHING FROM LISTOFTHINGS ORDER BY NAMEOFTHING

上記のクエリの最初の行の前に、値として「-1 'ALL THINGs'」を含む行を追加します。

したがって、テーブルに次の3つのエントリがある場合:

1, 'THING 1'
3, 'THING 3'
2, 'THING 2'

次に、私が望む結果は次のようになります。

-1, 'ALL THINGS'
1, 'THING 1'
2, 'THING 2'
3, 'THING 3'

私はクエリを実行してコードでリストを作成できることを知っていますが、これを使用しているVB6プログラム内に、クエリを入力するためのクエリを取るサードパーティアプリ(私はコードを持っていません)を持っていますACTIVEXテーブルコントロールと結果。静的な値を追加するためのフックがありません。

また、 "-1、 'ALL THINGS'"のテーブルにレコードを置くことができることも知っていますが、問題は、その場合、プログラムの多くの場所を変更して、そのレコードを無視する必要があることです。処理を行います。

「ALL THINGS」値は、プログラムの一部の特殊なケースを処理する一種の疑似レコードです。

20
Zeke Hansell

クエリでユニオンを実行できますか?

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

これを試して:

SELECT -1 AS ID, 'ALL THINGs' AS NAMEOFTHING FROM SYSIBM.SYSDUMMY1
UNION
SELECT ID, NAMEOFTHING FROM LISTOFTHINGS 
13
Chandu