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

偏题,请大家看看,

2013-07-04 
难题,请大家看看,急啊SELECT top 36id,roomName,bgImg,qqImg,listCount FROM room where [status]2 ORDER

难题,请大家看看,急啊

SELECT top 36  id,roomName,bgImg,qqImg,listCount FROM room where [status]=2 ORDER BY listCount DESC,id asc


我想让这个结果里一定要包含id=1的那一行,如果有就按默认listCount asc排列,没有就加到最后一行,但一定要有,因为listCount 是会变化的.没有的话加上了变成37行了也没关系
[解决办法]
SELECT DISTINCT TOP 36
        id ,
        roomName ,
        bgImg ,
        qqImg ,
        listCount
FROM    ( SELECT    id ,
                    roomName ,
                    bgImg ,
                    qqImg ,
                    listCount
          FROM      room
          WHERE     id = 1
          UNION ALL
          SELECT TOP 37
                    id ,
                    roomName ,
                    bgImg ,
                    qqImg ,
                    listCount
          FROM      room
          WHERE     [status] = 2
          ORDER BY  listCount DESC ,
                    id ASC
        ) T
ORDER BY listcount ASC

[解决办法]
引用:
SELECT top 36  id,roomName,bgImg,qqImg,listCount FROM room where [status]=2 ORDER BY listCount DESC,id asc


我想让这个结果里一定要包含id=1的那一行,如果有就按默认listCount asc排列,没有就加到最后一行,但一定要有,因为listCount 是会变化的.没有的话加上了变成37行了也没关系


lz 你的需求表达的不是很清楚。

热点排行