我想知道是否有一种方法可以通过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”值是一种 伪记录 ,可处理该程序一部分的特殊情况。
您可以在查询中进行并集吗?
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