字符串连接问题

lcmlhs_2005 2013-09-12 07:50:07
declare @s varchar(50)
declare @s1 varchar(50)
set @s=char(137)+char(76)
set @s1=char(137)
set @s1=@s1+char(76)
print @s --这里输出一个像莹字一样的乱码
print @s1 --而这里却输出一个L
上面的输出为什么不同,另,我要用@x=@x+char(y)的方式达到输出@s的效果,怎样弄?
...全文
282 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxm20003 2013-10-12
  • 打赏
  • 举报
回复
同意楼上的方法
LongRui888 2013-10-11
  • 打赏
  • 举报
回复
引用 11 楼 lcmlhs_2005 的回复:
嗯,看来还真是版本所致
我在sql server 2008r2执行竟然都返回NULL,我把我的sql server 2008r2的数据库的兼容性调成了2000的,把代码修改了一下,就可以正常显示了:
declare @s nvarchar(50)
declare @s1 nvarchar(50)

set @s=nchar(137)+nchar(76)
set @s1=nchar(137)
set @s1=@s1+nchar(76)

--网上查了一下,char(137)是 ‰,修改为nchar(137)后显示为‰L ,复制出来就成L了。

print @s    --这里输出一个像莹字一样的乱码
print @s1   --而这里却输出一个L

/*
‰L
‰L
*/
asdada_sad 2013-09-22
  • 打赏
  • 举报
回复
版本问题,试了sql2008,sql2008R2 都是乱码,可以肯定是版本问题
lcmlhs_2005 2013-09-22
  • 打赏
  • 举报
回复
嗯,看来还真是版本所致
lcmlhs_2005 2013-09-17
  • 打赏
  • 举报
回复
个人感觉还是sql2000版本的问题,在sql2005中处理的情况貌似和DB2数据库中的相近,而在sql2000中则不行。
Neo_whl 2013-09-15
  • 打赏
  • 举报
回复
回复于: 2013-09-13 09:53:38 楼上的,你的是数据库是什么版本的,是sql2000的吗?如果不是的话,你可以换sql2000试一试 我是用的sql2005
lcmlhs_2005 2013-09-13
  • 打赏
  • 举报
回复
要找方法,不要找借口,难道sql2000不能实现吗?
IEEE_China 2013-09-13
  • 打赏
  • 举报
回复
貌似用2000的人很少了。 我的2005
lcmlhs_2005 2013-09-13
  • 打赏
  • 举报
回复
没有高手吗?这点儿问题在这里都不能圆满地解决,情何心堪???
lcmlhs_2005 2013-09-13
  • 打赏
  • 举报
回复
楼上的,你的是数据库是什么版本的,是sql2000的吗?如果不是的话,你可以换sql2000试一试
-Tracy-McGrady- 2013-09-13
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/390589538 char其实不只是这个作用
lcmlhs_2005 2013-09-13
  • 打赏
  • 举报
回复
我用sql2005试了,也不行的,即@s=@s+char(x1..n)与@s=char(x1)+...+char(xn)结果是不同的
Neo_whl 2013-09-12
  • 打赏
  • 举报
回复
declare @s varchar(50) declare @s1 varchar(50) set @s='' set @s=@s+char(137)+char(76) set @s1=char(137) set @s1=@s1+char(76) print @s --这里输出一个像莹字一样的乱码 print @s1 --此处也是莹字 ----- 塋 塋

34,590

社区成员

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

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