我现在又这样一个需求 有一张表 表  表名Book
字段 BookID  BookName(书名) BookDesc (书的简介) 我要根据一个关键词 例如 Net入门 查询所有包含这个关键词的结果
sql 语句 select  * from Book where BookName like '%Net入门%' or BookDesc like '%Net入门%'
我要对结果进行排序 把书名中包含 ‘Net入门’ 的结果 排在 书的简介中包含 ‘Net入门’ 的前面 考虑分页

解决方案 »

  1.   

    select * from Book where BookName like '%Net入门%' or BookDesc like '%Net入门%'
    ORDER BY CASE WHEN BookName like '%Net入门%' THEN 1 
                  WHEN BookDesc like '%Net入门%' THEN 2
             END
      

  2.   

    select * 
    from Book 
    where BookName like '%Net入门%' or BookDesc like '%Net入门%'
    ORDER BY 
    CASE WHEN BookName like '%Net入门%' THEN 1 
         WHEN BookDesc like '%Net入门%' THEN 2
         ELSE 3
    END
      

  3.   

    1楼正解,我刚刚测试了 。create table book(
    BookID int,
    BookName varchar(50),
    BookDesc varchar(50))insert book 
    select 1,'net入门','小事'
    union all
    select 2,'net入门','abcd'
    union all
    select 3,'xxx','net入门'
    union all
    select 4,'哈哈','美美'select * from Book where BookName like '%Net入门%' or BookDesc like '%Net入门%'
    ORDER BY CASE WHEN BookName like '%Net入门%' THEN 1 
                  WHEN BookDesc like '%Net入门%' THEN 2
             END
      

  4.   

    楼上的各位大哥 我还想问一下 如果我用全文检索怎么办 sql 语句这样 
    select * from containsTable(book,*,'Net入门')
    查询结果与上面要求一样 希望帮过解决一下