Sybase按给定顺序选择WHERE IN

时间:2015-06-23 18:37:58

标签: sql select sql-order-by sybase sybase-ase

在Sybase

中使用SELECT WHERE IN()时是否有办法保持顺序

mysql中有两个例子:

SELECT * FROM table WHERE id IN (118,17,113,23,72) 
ORDER BY FIELD(id,118,17,113,23,72)


SELECT * FROM table WHERE id IN (118,17,113,23,72) 
ORDER BY FIND_IN_SET(id, '118,17,113,23,72')

我在Sybase Ase中需要它。

1 个答案:

答案 0 :(得分:2)

您可以使用case语句分解参数列表,并根据以下内容明确指定参数和顺序的升序计数器:

SELECT   * 
FROM     sometable 
WHERE    id IN (118,17,113,23,72) 
ORDER BY CASE id WHEN 118 THEN 1
                 WHEN 17  THEN 2
                 WHEN 113 THEN 3
                 WHEN 23  THEN 4
                 WHEN 72  THEN 5
          END ASC

它很笨拙,但它应该有效。