【问题标题】:Sybase Select WHERE IN given orderSybase 选择 WHERE IN 给定顺序
【发布时间】:2015-06-23 18:37:58
【问题描述】:

在 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 中需要它。

【问题讨论】:

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


    【解决方案1】:

    您可以使用 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
    

    虽然笨拙,但应该可以。

    【讨论】:

      猜你喜欢
      • 2010-10-03
      • 2011-02-26
      • 1970-01-01
      • 2020-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多