比如在数据库第一个字幕“C”之后,会检索出如下内容
列名1
Alachua
Chencun
Chengao
Chengde
Chenglingji
Chiwan
Chuzhou
Cixi
Becker
Benicia
Berwick
Bethany Beach
Birchwood
Biscoe
Guancheng
要求:按照输入字母的顺序排序(即:C所在的位置进行排序:第一个、第二位、第三位这样的顺序进行排列)

解决方案 »

  1.   

    select * from table where instr(upper(col),'C')>0 order by instr(upper(col),'C');
      

  2.   

    要注意了,1楼的可以实现你要功能,但是在数据量比较大时performance会很差的,理由是:
    select * from table where instr(upper(col),'C')>0 order by instr(upper(col),'C');红色字体部分,如果数据表中有60万条记录,那么红色字体部分就会运算60万次。忠告:一般在SQL中函数最好不要在'>'等运算符的右边出现,否则,数据表一大,性能基本上就完蛋了。
      

  3.   

    更正:
    忠告:一般在SQL中函数最好不要在'>'等运算符的左边出现,否则,数据表一大,性能基本上就完蛋了。
      

  4.   

    select * from table where instr(upper(col),'C')>0 order by instr(upper(col),'C');
    运行的结果是什么?
      

  5.   


    select * from table where instr(upper(col),'C')>0 order by instr(upper(col),'C');
      

  6.   


    select * from table where upper(col) like '%C%' order by instr(upper(col),'C');
      

  7.   


    SELECT * FROM TABLE WHERE COL1 LIKE '%C%' ORDER BY INSTR(COL1,'C');