我通过使用IN查询传递一个acct数列表来编写SQL查询,如: -
select acctnum,acctname from account where acctnum IN ('100', '200', '300')
这是我在查询中传递acctnumbers的方式。但是Oracle按以下顺序返回数据。
acctnum acctname 200鲍勃 100亚伦 300钱德勒
但是我希望数据以我通过acctnum的顺序显示(即)首先显示acct num“100”的记录,然后是其他记录。 因此,我希望结果如下: -
acctnum acctname 100亚伦 200鲍勃 300钱德勒
我们可以使用任何Oracle函数按照传递顺序显示记录吗?请让我知道你的意见。
感谢。
答案 0 :(得分:0)
AFAIK,没有办法这样做,因为检索方法取决于优化器和表中行的顺序以及其他因素。
要实现您想要在此处执行的操作,您需要明确地对输出进行排序,例如。
SELECT acctnum,
acctname
FROM account
WHERE acctnum IN ('100', '200', '300')
ORDER BY (CASE acctnum
WHEN '100' THEN 1
WHEN '200' THEN 2
WHEN '300' THEN 3
END)
希望这有帮助, 奥利