当前位置: 代码迷 >> Sql Server >> 怎么让出现的字符次数的多少来排序?感觉有点"变态"
  详细解决方案

怎么让出现的字符次数的多少来排序?感觉有点"变态"

热度:124   发布时间:2016-04-27 13:02:43.0
如何让出现的字符次数的多少来排序?感觉有点"变态"
比如有一表tb,数据如下

id text
1 我是中国人
2 大家好,我是中人中人是
3 你们好吗?我是我是
4 大家来帮个忙,我不是中国的.我是外国的是

如果我搜索"是人",那么首先是按"是"字出现的次数多少,多的排前面.出现"是"字数相同的,再按"人"字出现的次数多少排序.
所以得出的结果是:

4 大家来帮个忙,我不是中国的.我是外国的是
2 大家好,我是中人中人是
3 你们好吗?我是我是
1 我是中国人

这样如何写sql语句?谢谢!

------解决方案--------------------
SQL code
if object_id('[tb]') is not null drop table [tb]gocreate table [tb]([id] int,[text] varchar(38))insert [tb]select 1,'我是中国人' union allselect 2,'大家好,我是中人中人是' union allselect 3,'你们好吗?我是我是' union allselect 4,'大家来帮个忙,我不是中国的.我是外国的是'goselect * from tborder by  len([text])-len(replace([text],'是','')) desc,  len([text])-len(replace([text],'人','')) desc/**id          text----------- --------------------------------------4           大家来帮个忙,我不是中国的.我是外国的是2           大家好,我是中人中人是3           你们好吗?我是我是1           我是中国人(4 行受影响)**/
  相关解决方案