如何让出现的字符次数的多少来排序?感觉有点"变态"
比如有一表tb,数据如下
id text
1 我是中国人
2 大家好,我是中人中人是
3 你们好吗?我是我是
4 大家来帮个忙,我不是中国的.我是外国的是
如果我搜索"是人",那么首先是按"是"字出现的次数多少,多的排前面.出现"是"字数相同的,再按"人"字出现的次数多少排序.
所以得出的结果是:
4 大家来帮个忙,我不是中国的.我是外国的是
2 大家好,我是中人中人是
3 你们好吗?我是我是
1 我是中国人
这样如何写sql语句?谢谢!
[解决办法]
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 行受影响)**/