varchar(5)能提取超过5个字符的数据吗?

fisherboy 2009-09-03 04:42:41
sql server

数据库中,有个字段cp的记录值是“中国5201314..................”很长,

如果我只用 cast(cp as varchar(5))
1 会出错吗?
2, 还是提取“中国520”
3,还是提取“中国5”

??
...全文
138 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
百年树人 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 fisherboy 的回复:]
我晕倒啊,我机子上没sql server不好测试

请问楼上的,测试过没有啊。??、

到底哪个是答案?
[/Quote]

要学好sql server建议你还是装一个吧
usher_gml 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 htl258 的回复:]
原因很简单,汉字属于unicode字符,一个汉字占用2个非unicode字节.
[/Quote]
完全正确
htl258_Tony 2009-09-03
  • 打赏
  • 举报
回复
原因很简单,汉字属于unicode字符,一个汉字占用2个非unicode字节.
fisherboy 2009-09-03
  • 打赏
  • 举报
回复
我晕倒啊,我机子上没sql server不好测试

请问楼上的,测试过没有啊。??、

到底哪个是答案?
htl258_Tony 2009-09-03
  • 打赏
  • 举报
回复
select cast('中国5201314' as varchar(5))
/*
-----
中国5

(1 行受影响)
*/
select cast('中国5201314' as nvarchar(5))
/*

-----
中国520

(1 行受影响)

*/
华夏小卒 2009-09-03
  • 打赏
  • 举报
回复
没试验的,都错了吧
--小F-- 2009-09-03
  • 打赏
  • 举报
回复
select cast('中国5201314..................' as varchar(5))
/*-----
中国5

(1 行受影响)*/
百年树人 2009-09-03
  • 打赏
  • 举报
回复
这种问题楼主没必要提问,自己试试就知道..
华夏小卒 2009-09-03
  • 打赏
  • 举报
回复

declare @a varchar(20)
set @a='中国5201314........'

select cast(@a as varchar(5))

-----
中国5 --事实胜于雄辩

(1 行受影响)

jiangshun 2009-09-03
  • 打赏
  • 举报
回复
错了
select cast('中国我爱你' as varchar(2))


----


(1 行受影响)

dawugui 2009-09-03
  • 打赏
  • 举报
回复
中国520
百年树人 2009-09-03
  • 打赏
  • 举报
回复
不会报错,但会截断
--小F-- 2009-09-03
  • 打赏
  • 举报
回复
提取“中国520
lihan6415151528 2009-09-03
  • 打赏
  • 举报
回复

select cast('中国5201314..................' as varchar(5))


-----
中国5

(所影响的行数为 1 行)

jiangshun 2009-09-03
  • 打赏
  • 举报
回复
2

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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