数据库中有三列
ID   原价  折扣价
789  100    10
790  100    20
791  200    39
........如何查询到折扣最低的6个产品,谢谢!

解决方案 »

  1.   

    select top 6 form 表 order by 折扣价
      

  2.   


    select top 6 * form 表 order by 折扣价
      

  3.   

    SELECT TOP 6 FROM TABLE ORDER BY 折扣价 ASC
      

  4.   

    SELECT TOP 6 FROM TABLE ORDER BY 折扣价
      

  5.   

    汗,谢谢楼上各位,是我没说清楚。
    我要的是折扣最低的商品,
    比如说A产品原价卖1000块,现在卖10块,折扣很低
    B产品原价卖100块,现在卖9块,即我选择B产品而不选择A产品
      

  6.   

    select top 6 * from ( select 折扣价/原价 as 折扣 , * from table) a order by 折扣
      

  7.   

    还是不明白你的意思  折扣的话 当然是1000卖10块的 比100卖九块的要折扣的多  那你怎么还选B 不选A  这就不是叫取折扣最低了。
    思路上面的都给了  就是用Order by asc 来排序你要的那个字段  再select top 取你要几条数据
      

  8.   


    with temp as (
    select *,(折扣价/ISNULL(NULLIF(原价,0),1)) as 折扣比率 from 折扣表)
    select top 6 * from temp order by 折扣比率 ASC
      

  9.   

    with temp as (
    select *,(折扣价/ISNULL(NULLIF(原价,0),折扣价)) as 折扣比率 from 折扣表)
    select top 6 * from temp order by 折扣比率 ASC
      

  10.   

    我自己写了个
       SQL = "select top 6 * from 产品表 where A_Pass='1' order by (A_Price_2/A_Price) desc"貌似也可以
      

  11.   

    select top 6 *, (原价 -  折扣价 ) as price order by price desc
    在sql server 2005上调试通过
      

  12.   

    修改一下,更简洁的写法:
    select top 6 * from 表 order by (原价 -  折扣价 ) desc 
      

  13.   

    再修改一下,处理null记录:
    select top 6 * from 表 order by (isnull(原价,0) -  isnull(折扣价, 0) ) desc