我想用sql计算某个表里的记录中,关于某个字段的字数统计

比如,我有一个字段叫notes,我用什么函数可以统计每行记录里,那个字段的字数?比如,字段名是notes,函数名是length,那就是,length(notes),
请问,有这样的函数吗?

我的数据库是sql server 2008

我现在想实现的功能是:
如果notes前六个字相同,按六个字排序
如果notes前五个字相同,按五个字排序
如果notes前四个字相同,按四个字排序

那你NOTES里面只要有6个以上的,那就都会按6个字排序吧。
按上面讲的,你有3种情况,那就会有3种排列,不可能同时用3种排列吧。
你最多可以按NOTES的字符数来排列,字符最多的排第一位,最少的排最后面。追问

不可能同时用3种排列吧。
我记得,sql里有一个函数叫case when then else end,类似于数学里的分类讨论思想。

最多可以按NOTES的字符数来排列,字符最多的排第一位,最少的排最后面。
不单单是字符数的问题。
拿“有六个字的notes”来说
字数要达标准,
达到标准之后,判断 众多满足条件(有六个字)的notes里面,
哪些是前六个字相同、前五个字相同、前四个字相同等等。

追答

关键是你NOTES里面的内容是什么情况?
如果上面的三种情况都能满足,那该如何处理?

追问

前六个字相同且前五个字相同且前四个字相同,
那不就是按“前六个字相同”处理吗?

追答

这样做的目的是什么? 记录大概有多少?

追问

AAAAAAA
AAAAAAB

AAAAAB
AAAAAC

AAAAC
AAAAD

AAAD
AAAE

把那些字数大于等于6字的数据摆在一块,
把那些数据按前6个字来排序:
前6字相同的先排序,
前6字不完全相同的前5字相同的先排序,
依此类推

再把那些字数大于等于5个字的数据摆在一块,
把那些数据按前5个字来排序:
前5字相同的先排序,
前5字不完全相同的前4字相同的先排序,
依此类推

然后继续往下

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-21
select len(notes) 字符数 from 表名追问

谢谢大家,我已经知道了,是用len()函数

现在有新问题,
notes这个字段,
有些记录是六个字以及六个字以上,
有些记录是五个字,
有些记录是四个字,
有些记录是四个字以下

我现在想实现的功能是
如果notes前六个字相同,按六个字排序
如果notes前五个字相同,按五个字排序
如果notes前四个字相同,按四个字排序

请问,怎么用sql语句实现啊?

追答

你直接用 order by notes 即可实现的。

追问

把那些字数大于等于6个字的数据摆在一块,
把那些数据按前6个字来排序:
前6个字相同的先排序,
前6个字不完全相同的按前5个字相同排序,
依此类推

再把那些字数大于等于5个字的数据摆在一块,
把那些数据按前5个字来排序:
前5个字相同的先排序,
前5个字不完全相同的按前4个字相同排序,
依此类推

然后继续往下

本回答被提问者采纳
第2个回答  2015-10-21
SQLServer中获取字符串长度的函数是len()追问

谢谢大家,我已经知道了,是用len()函数

现在有新问题,
notes这个字段,
有些记录是六个字以及六个字以上,
有些记录是五个字,
有些记录是四个字,
有些记录是四个字以下

我现在想实现的功能是
如果notes前六个字相同,按六个字排序
如果notes前五个字相同,按五个字排序
如果notes前四个字相同,按四个字排序

请问,怎么用sql语句实现啊?

追答

你的意思是6个字的排最前面?
order by len(notes) desc,notes

追问

order by len(notes) desc,notes

什么意思啊?desc和notes中间还有一个逗号???????

第3个回答  2015-10-21
len(notes)追问

谢谢大家,我已经知道了,是用len()函数

现在有新问题,
notes这个字段,
有些记录是六个字以及六个字以上、五个字、四个字、四个字以下

把那些字数大于等于6个字的数据摆在一块,
按前6字来排序:
前6字相同的先排序,
前6字不完全相同的前5字相同先排序
依此类推

再把那些字数大于等于5字的数据摆在一块,
按前5字来排序:
前5字相同的先排序,
前5字不完全相同的前4字相同先排序
依此类推

然后继续往下

第4个回答  2015-10-21
len

回答个len,字数还少。NND.追问

谢谢大家,我已经知道了,是用len()函数

现在有新问题,
notes这个字段,
有些记录是六个字以及六个字以上、五个字、四个字、四个字以下

把那些字数大于等于6个字的数据摆在一块,
按前6字来排序:
前6字相同的先排序,
前6字不完全相同的前5字相同先排序
依此类推

再把那些字数大于等于5字的数据摆在一块,
按前5字来排序:
前5字相同的先排序,
前5字不完全相同的前4字相同先排序
依此类推

然后继续往下