字符串的后缀排序(100分)

  • 主题发起人 主题发起人 chinaplate
  • 开始时间 开始时间
C

chinaplate

Unregistered / Unconfirmed
GUEST, unregistred user!
在SQLSERVER(或ACCESS)中,存在一个TABLE,他记录着一堆英语单词,
表的结构如下
(单词,词性,含义,例句,。。)
我想按单词的后缀排序,就是先找单词中最后一个字母为A的,再找最后一个字母为B的,
最后一个字母相同的按倒数第二个字母排序,依次论推。。。
(并不是象‘ORDER BY 单词 DESC’那样的逆序)
OK,各位请了。
 
是不是只能在数据库里做 ?
不会 ,好像很难哦。
Listen.. Up..
 
如果是在SQLSERVER中,可以借助他内置的字符串操作函数reverse来处理,比如使用如下语句:
select * from YOUR_TABLE
order by reverse(rtrim(WORD_FIELD))
后面的 ORDER BY字句就是将你指定的字符字段内容去掉后面的空格(RTRIM),然后反转顺序,
再用反转后的字串对结果集进行排序。
很EASY~的,一试便知。
 
如果是access或paradox呢
 
ok,谢谢GIGROOM。
原来有这个东东,对于其他的数据库呢?再等等其他朋友。
稍候给你分。
 
对于ACCESS我试了一下,好像没有对REVERSE的支持(RTRIM好像倒是有),但是也有办法解决:
1,在数据库中添加一个字段,专门存放单词字段的反转内容,这样,就很容易解决了。
2,使用如下SQL,利用LEFT和RIGHT函数:
select * from YOUR_TABLE
order by RIGHT(RTRIM(WORD_FIELD), 1), left(RIGHT(RTRIM(WORD_FIELD), 2), 1), left(RIGHT(RTRIM(WORD_FIELD), 3), 1)
上面的语句可以实现按照倒数3个字母顺序排序,如果要增加排序长度,则相应增长ORDER BY字句的内容。
这是个比较麻烦的方法,而且处理能力有限。

paradox我现在没法试,不知道怎么办。
 
谢谢了。
我前几天看了一个叫《我爱背单词》的软件。他将GRE词汇通过后缀排序,
这样一来,很多词性,用法,含义近似的词就排在了一起,这样确实有
助与学习英语。
看起来复杂的东西,原来这么简单。谢谢你了。
多多交流。
 
后退
顶部