SQLServer 和 Oracle 的 SubString 问题

博客主要讲述了SQL Server和Oracle中字符串截取函数的问题。SQL Server的substring和Oracle的substr功能相似,都按当前字符集计算字符串长度。以'Iam中国人'为例,不同字符集下截取结果不同。若要按字节取数据,Oracle可用substrb,SQL Server则需先转varbinary类型再用substring。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天碰到一个substring的问题, 是双字节引起的.
sqlserver的substring(str, start ,length) 和 Oracle的 substr(str, start, length) 功能几乎完全相同. 要注意的是他们都是根据当前的字符集来计算字符串长度.
 如 str = 'Iam中国人' 则 substring(str,3,2) 在中文数据库下返回"m中", 但在英文数据库下返回从m开始的两个字节.

所以如果想要根据字节来取数据,则要想别的办法.
oracle 很简单,可以使用substrb
sqlserver则没有相应的函数, 只能先把str转成 varbinary类型,然后再用substring.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值