有个数据表是这样的:钻孔号    地层号    土层名称
B1        1           填土
B1        2           粉土
B1        3           粉质粘土
B1        4           粉土
B1        5           淤泥
B1        6           粉质粘土
B2        1           填土
B2        2           粉土
B2        3           粉质粘土
B2        4           粉土
B2        5           淤泥
.........
表里有很多钻孔,每个孔深度不同,每个地层号对应的土层是一样的。
问题:我想查询出该表中有哪些不同的土层名称,且能按照地层号排序,我这样写:
select dictinct 地层号,土层名称 from table1 order by 地层号
得到的结果是这样的:
地层号   土层名称
1         填土
2         粉土
3         粉质粘土
4         粉土
5         淤泥
6         粉质粘土
虽然按照地层号排了,但我真正需要的是有哪些不同的土名,上面的结果有重复的。如果我这样写:
select dictinct 土层名称 from table1  
虽然得到了不同的土名,可显示的顺序没有按照地层号的顺序排,粉土在最前面了。不知道我有没有说清楚这个问题,我想得到不同的土名,可也要按地层号大小的顺序排除不同的土名。也就是要显示这样的结果:
填土
粉土
粉质粘土
淤泥请高手指教该如何写SQL语句?

解决方案 »

  1.   

    select dictinct 地层号,土层名称 from table1 group by 土层名称 order by 地层号
      

  2.   

    zhangying7725(本世纪最大谎言!) :试了一下,提示错误,意思是说:“You tried to execute  query  that doesn't include the specified expresion '地层号' as a part of an aggregate function”.请指教。是否不能这样分组?
      

  3.   

    select dictinct 土层名称 from table1 a left join table1 b 
    on a.地层号=b.地层号
    order by b.地层号
      

  4.   

    select dictinct 土层名称 from
    (select dictinct 地层号,土层名称 from table1 order by 地层号)快乐接分!!!
      

  5.   

    zqfleaf(动力港湾) :试了一下,好象仍提示错误,意思大概是说土层名称字段指向了from语句的不止一个表
      

  6.   

    ucipl(天蓝) :
    也试了,提示from语句语法错误
      

  7.   

    另外,说明一下,上面dictinct应该是distinct
      

  8.   

    zqfleaf(动力港湾) :再帮我想想啊。好象要分两步,可四楼的又提示from语句错误。