select top 10 cname from pricelist where cname LIKE '%"&keyword&"%' and cname not in ('"&keyword&"') union select top 10 Number from pricelist where Number LIKE '%"&keyword&"%' and Number not in ('"&keyword&"') order by len(cname)
这句话提示错误,如果要最后出来的结果安装列(cname)的字符长度排列应该如何?
谢谢!

解决方案 »

  1.   

    这样试试...select * from
    (
    select top 10 cname from pricelist 
    where cname LIKE '%"&keyword&"%' and cname not in ('"&keyword&"') 
    union 
    select top 10 Number from pricelist 
    where Number LIKE '%"&keyword&"%' and Number not in ('"&keyword&"')
    ) t 
    order by len(cname)
      

  2.   

    select top 100 percent * from (select top 10 cname from pricelist where cname LIKE '%"&keyword&"%' and cname not in ('"&keyword&"') order by cname) t
    union 
    select top 100 percent * from (select top 10 Number cname from pricelist where Number LIKE '%"&keyword&"%' and Number not in ('"&keyword&"') order by Number) t
      

  3.   

    select top 100 percent * from (select top 10 cname from pricelist where cname LIKE '%"&keyword&"%' and cname not in ('"&keyword&"') order by cname) t
    union 
    select top 100 percent * from (select top 10 Number cname from pricelist where Number LIKE '%"&keyword&"%' and Number not in ('"&keyword&"') order by Number) t
    order by len(cname)
      

  4.   

    排序一定要作为查询的最后一个步骤才有效果,对子句排序没有意义所以报错了select * from
    (
    select top 10 cname from pricelist 
    where cname LIKE '%"&keyword&"%' and cname not in ('"&keyword&"') 
    union 
    select top 10 Number from pricelist 
    where Number LIKE '%"&keyword&"%' and Number not in ('"&keyword&"')
    ) t 
    order by len(cname)
      

  5.   

    这样才是需要的,谢谢你们!
    select top 10 * from(select cname from pricelist where cname LIKE '%"&keyword&"%' and cname not in ('"&keyword&"') 
    union select Number from pricelist where Number LIKE '%"&keyword&"%' and Number not in ('"&keyword&"')) t 
    order by len(cname)