今天碰到一个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.
sqlserver的substring(str, start ,length) 和 Oracle的 substr(str, start, length) 功能几乎完全相同. 要注意的是他们都是根据当前的字符集来计算字符串长度.
如 str = 'Iam中国人' 则 substring(str,3,2) 在中文数据库下返回"m中", 但在英文数据库下返回从m开始的两个字节.
所以如果想要根据字节来取数据,则要想别的办法.
oracle 很简单,可以使用substrb
sqlserver则没有相应的函数, 只能先把str转成 varbinary类型,然后再用substring.