请问在Oracle数据中如何实现按照拼音首字母查询,比如有数据 张三,李四, 当按“Z”查询的时候结果为 张三, 按“L”查询的时候 结果为 李四, 请高手指点,谢谢!

解决方案 »

  1.   

    没法准确地排,因为存在多音字。
    select * from table t where t.name between '啦' and '妈'
    啦=la,妈=ma
    这基本就是l开头的,你其实只要找到每个拼音对应的第一个汉字就可以了,
    太奇怪的姓也不多,汉字本身也是按音排序了。
      

  2.   

    通常的做法是在表格中存有例外一个字段用于存储拼音。这样查询的时候会快一点。
    如果你希望使用函数,可以参考其它语言的函数,翻译过来.
    我个人建议还是用前面的方式.而后面的方式,适合在输入界面上,或者保存前用于获得拼音.
    有个java的范例
    http://blog.iyi.cn/start/2004/12/java_3.html