首页 新闻 搜索 专区 学院

sql字符串长度问题

0
[待解决问题]

我想问一下,我用sql查询一列,这一列是string类型的,里面的值有汉字,也有数字!我怎么得到这一列值的长度,其中汉字两个字符,数字和字母一个字符!

bavol的主页 bavol | 菜鸟二级 | 园豆:206
提问于:2017-03-27 17:52
< >
分享
所有回答(5)
0

SELECT len('测试123')

liuxb、 | 园豆:661 (小虾三级) | 2017-03-27 17:55

你这样查出来是5个字符,不是7个字符!

支持(0) 反对(0) bavol | 园豆:206 (菜鸟二级) | 2017-03-27 17:57
0

数据库是做查询的,不是做计算的,虽然你这功能用SQL能实现,但tsql本身的特性就决定了这样写出来是相当臃肿而且别扭的。

正常的姿势是取出来到程序里面计算。

Daniel Cai | 园豆:10374 (专家六级) | 2017-03-27 17:56

哎,没办法啊,我要做判断用!只能计算出来!有好的方法吗?

支持(0) 反对(0) bavol | 园豆:206 (菜鸟二级) | 2017-03-27 17:58
0

请看图片吧

Firen | 园豆:5483 (大侠五级) | 2017-03-27 18:01

这个是在sql server2008里面用的吧!忘了告诉你,我用的大数据和Oracle!这个好像不行吧

支持(0) 反对(0) bavol | 园豆:206 (菜鸟二级) | 2017-03-27 18:10
0

你的想法有一个前提.

你数据的字符串是使用的utf-8编码.才能像3楼那样得到那样的结果.

但nvarchar是unico编码.varchar要看数据库配置.

吴瑞祥 | 园豆:28820 (高人七级) | 2017-03-27 18:10

大数据里面的,用的好像是VARCHAR2!

支持(0) 反对(0) bavol | 园豆:206 (菜鸟二级) | 2017-03-27 18:12

@bavol: 所以你要先弄清楚你的字符串字段用的编码格式.

这个varchar只是数据库的类型.并不表示他的编码.

支持(0) 反对(0) 吴瑞祥 | 园豆:28820 (高人七级) | 2017-03-27 18:13

@吴瑞祥: utf-8

支持(0) 反对(0) bavol | 园豆:206 (菜鸟二级) | 2017-03-27 18:26

@吴瑞祥: 但是在Oracle或者大数据里面不能用啊!

支持(0) 反对(0) bavol | 园豆:206 (菜鸟二级) | 2017-03-27 18:27

@bavol: 肯定有对应的方法的.帮你找了..

http://benjaminyu.iteye.com/blog/1745153

努力学习百度.

支持(0) 反对(0) 吴瑞祥 | 园豆:28820 (高人七级) | 2017-03-27 18:31

@吴瑞祥: 亲,不行的,lengthb是所有都是两个字符!“123”,查出来的是6,不是3!

支持(0) 反对(0) bavol | 园豆:206 (菜鸟二级) | 2017-03-27 18:43

@bavol: 那就说明你的编码不是utf-8.不然怎么都不会出来6.6的可能性就是你的编码是unico

支持(0) 反对(0) 吴瑞祥 | 园豆:28820 (高人七级) | 2017-03-27 19:12

@吴瑞祥: 而且lengthb不能用在大数据里!

支持(0) 反对(0) bavol | 园豆:206 (菜鸟二级) | 2017-03-28 09:42

@bavol: 什么是大数据.是说Oracle的大数据模式?

支持(0) 反对(0) 吴瑞祥 | 园豆:28820 (高人七级) | 2017-03-28 10:10
0

在sql server中,需要使用datalength函数来获取字节长度,请参考我的博客

字符串的长度,是字符数量,还是字节数量?

悦光阴 | 园豆:2239 (老鸟四级) | 2017-03-28 12:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册