关于SUBSTRING和LEN的疑问

老宛 2004-07-14 02:51:40
DECLARE @STRING VARCHAR(20)
SET @STRING='我是1个中国人,12345'
为什么SUBSTRING('我是1个中国人,12345',3,2)的结果是 1个 呢?但是汉字是占用两个字节的呀,还有LEN(@STRING)的结果却是13
如果
SET @STRING='一二三四五六七八九十十九'
SELECT @STRING的结果是 一二三四五六七八九十
呵呵,我都搞糊涂了,这个和排序规则有关系吧,我的是Chinese_PRC_CI_AS,请高手们详细解释一下好吗?
...全文
241 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
老宛 2004-07-14
  • 打赏
  • 举报
回复
感谢邹老大,结帖
leeboyan 2004-07-14
  • 打赏
  • 举报
回复
来了
zjcxc 元老 2004-07-14
  • 打赏
  • 举报
回复
expression 类型是ntext、char 或 varchar ,是按字符数取
text、image、binary 或 varbinary 是按字节数取
老宛 2004-07-14
  • 打赏
  • 举报
回复
能详细一点解释吗?
zjcxc 元老 2004-07-14
  • 打赏
  • 举报
回复
SQL联机丛书上说得很明白


语法
SUBSTRING ( expression , start , length )

expression

是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。

在字符数中必须指定使用 ntext、char 或 varchar 数据类型的偏移量(start 和 length)。
在字节数中必须指定使用 text、image、binary 或 varbinary 数据类型的偏移量。

34,589

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧