我想知道是否有办法通过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'值是一种伪记录,用于处理程序某一部分的特殊情况。
答案 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