小编Zek*_*ell的帖子

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

我想知道是否有办法用SQL查询来实现这一点.

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

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

SELECT ID, NAMEOFTHING FROM LISTOFTHINGS ORDER BY NAMEOFTHING
Run Code Online (Sandbox Code Playgroud)

并在上面的查询的第一行之前添加一行,其中"-1,'ALL THINGs'"作为值.

因此,如果该表具有以下三个条目:

1, 'THING 1'
3, 'THING 3'
2, 'THING 2'
Run Code Online (Sandbox Code Playgroud)

然后我想要的结果看起来像这样:

-1, 'ALL THINGS'
1, 'THING 1'
2, 'THING 2'
3, 'THING 3'
Run Code Online (Sandbox Code Playgroud)

我知道我可以执行查询并使用代码创建列表,但在我正在使用它的VB6程序中,我有一个第三方应用程序(我没有代码),它接受查询填充具有结果的ACTIVEX表控件.我没有钩子进入添加静态值.

我也知道我可以在表格中记录"-1,'所有事情'",但问题是,如果我这样做,我将需要更改程序中的很多地方以忽略该记录时做处理.

'ALL THINGS'值是一种伪记录,用于处理程序某一部分的特殊情况.

sql db2

21
推荐指数
2
解决办法
8万
查看次数

按SQL顺序自定义排序?

这是我想要解决的情况:

我有一个可以返回一组记录的查询.被排序的字段可能有许多不同的值 - 为了这个问题,我们会说这个值可以是A,B,C,D,E或Z

现在,根据查询的结果,排序需要表现如下:如果只找到AE记录,那么"自然"排序它们是可以的.但是如果结果中存在Z记录,那么它需要是查询中的第一个结果,但其余记录应该是"自然"排序顺序.

例如,如果找到ACD,那么结果应该是

A
C
D
Run Code Online (Sandbox Code Playgroud)

但是如果找到ABDEZ,那么结果应该排序:

Z
A
B
D
E
Run Code Online (Sandbox Code Playgroud)

目前,查询看起来像:

SELECT NAME, SOME_OTHER_FIELDS FROM TABLE ORDER BY NAME
Run Code Online (Sandbox Code Playgroud)

我知道我可以编写一个排序函数来做我想要的,但由于我如何使用结果,我似乎无法使用,因为结果是由第三方库处理的,我只是通过了SQL查询.然后处理结果,似乎没有钩子可以对结果进行排序,只是将结果传递给库.它需要自己进行SQL查询,而且我无法访问库的源代码.

那么对于你们所有的SQL专家来说,你能为我提供一个能够做我想做的事吗?

sql sorting

8
推荐指数
1
解决办法
3万
查看次数

标签 统计

sql ×2

db2 ×1

sorting ×1