读书人

用select where in话语查询结果不按条

发布时间: 2012-12-22 12:05:07 作者: rapoo

用select where in语句查询结果不按条件排序
我用了select * from chufang where picid in(23,34,43,32,12,45)查询,但是结果不能按照23,34,43,32,12,45的次序排序,不知道是什么原因,应该怎么写语句,请教各位!谢谢
[解决办法]
你要价格order by才行啊。where的只是筛选而已
[解决办法]

引用:
你要价格order by才行啊。where的只是筛选而已

+1 in只是一个范围!
你要排序的顺序很奇怪哦
[解决办法]
WITH    chufang
AS ( SELECT 23 picid
UNION
SELECT 34
UNION
SELECT 43
UNION
SELECT 32
UNION
SELECT 12
UNION
SELECT 45
)
SELECT *
FROM chufang
WHERE picid IN ( 23, 34, 43, 32, 12, 45 )
ORDER BY CASE picid
WHEN 23 THEN 1
WHEN 34 THEN 2
WHEN 43 THEN 3
WHEN 32 THEN 4
WHEN 12 THEN 5
WHEN 45 THEN 6
END

/*
picid
-----------
23
34
43
32
12
45

(6 行受影响)


*/

[解决办法]
引用:
SQL code

WITH chufang
AS ( SELECT 23 picid
UNION
SELECT 34


UNION
SELECT 43
UNION
……


case 在order by 的用法,之前看过,复习了
http://www.cnblogs.com/tuyile006/archive/2007/08/27/871801.html
[解决办法]
select * from chufang where picid=50 or picid=51 order by case picid when 50 then 1 when 51 then 2 end
这句话在SQL server中可以正常执行,但是在access下就不行,不知道是什么缘故。

读书人网 >SQL Server

热点推荐