将静态值添加到SQL查询的结果中

时间:2011-06-24 18:20:51

标签: sql db2

我想知道是否有办法通过SQL查询来实现这一目标。

我有一张桌子,我们称之为“LISTOFTHINGS”,它有两个感兴趣的领域“ID”和“NAMEOFTHING”

我想要做的是构建一个查询,以便返回的内容是此查询的结果:

SELECT ID, NAMEOFTHING FROM LISTOFTHINGS ORDER BY NAMEOFTHING

并在上面查询的第一行之前添加一行,其中包含“-1,'ALL THINGs'”作为值。

因此,如果表格包含以下三个条目:

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'值是一种伪记录,用于处理程序某一部分的特殊情况。

2 个答案:

答案 0 :(得分:29)

您可以在查询中进行联合吗?

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

答案 1 :(得分:13)

试试这个:

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