首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-12-22 
用select where in语句查询结果不按条件排序我用了select * from chufang where picid in(23,34,43,32,12,

用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下就不行,不知道是什么缘故。

热点排行
Bad Request.