我想问一下,我用sql查询一列,这一列是string类型的,里面的值有汉字,也有数字!我怎么得到这一列值的长度,其中汉字两个字符,数字和字母一个字符!
SELECT len('测试123')
你这样查出来是5个字符,不是7个字符!
数据库是做查询的,不是做计算的,虽然你这功能用SQL能实现,但tsql本身的特性就决定了这样写出来是相当臃肿而且别扭的。
正常的姿势是取出来到程序里面计算。
哎,没办法啊,我要做判断用!只能计算出来!有好的方法吗?
请看图片吧
这个是在sql server2008里面用的吧!忘了告诉你,我用的大数据和Oracle!这个好像不行吧
你的想法有一个前提.
你数据的字符串是使用的utf-8编码.才能像3楼那样得到那样的结果.
但nvarchar是unico编码.varchar要看数据库配置.
大数据里面的,用的好像是VARCHAR2!
@bavol: 所以你要先弄清楚你的字符串字段用的编码格式.
这个varchar只是数据库的类型.并不表示他的编码.
@吴瑞祥: utf-8
@吴瑞祥: 但是在Oracle或者大数据里面不能用啊!
@bavol: 肯定有对应的方法的.帮你找了..
http://benjaminyu.iteye.com/blog/1745153
努力学习百度.
@吴瑞祥: 亲,不行的,lengthb是所有都是两个字符!“123”,查出来的是6,不是3!
@bavol: 那就说明你的编码不是utf-8.不然怎么都不会出来6.6的可能性就是你的编码是unico
@吴瑞祥: 而且lengthb不能用在大数据里!
@bavol: 什么是大数据.是说Oracle的大数据模式?