如何告诉oracle按照从java传入的特定排序顺序进行排序?

goe*_*goe 6 java sql sorting oracle

这就是我需要做的事情.

我在java中有一个List,我可以将其转换为逗号单独的ID字符串,如此"3,4,5,6,1,2"

我想知道是否有办法将该字符串传递给oracle并根据该字符串的排序顺序进行sql代码排序?

所以这个查询:

select t.id
from t_test t
Run Code Online (Sandbox Code Playgroud)

会导致这个订单

ID
3
4
5
6
1
2
Run Code Online (Sandbox Code Playgroud)

Pab*_*blo 9

如果你可以在java中修改查询,你可以这样做:

SELECT t.id
FROM t_test t
ORDER BY DECODE(t.id, 3, 'A', 'B') ASC,
         DECODE(t.id, 4, 'A', 'B') ASC,
         DECODE(t.id, 5, 'A', 'B') ASC,
         DECODE(t.id, 6, 'A', 'B') ASC,
         DECODE(t.id, 1, 'A', 'B') ASC,
         DECODE(t.id, 2, 'A', 'B') ASC;
Run Code Online (Sandbox Code Playgroud)

您必须在order by子句中为列表中的每个元素添加解码.每个解码中的第二个参数是列表的一个元素.