Sybase Select WHERE IN 给定顺序
Sybase Select WHERE IN given order
在 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 中需要它。
您可以使用 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
它太笨重了,但应该可以用。
在 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 中需要它。
您可以使用 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
它太笨重了,但应该可以用。