首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql2000字符串串联接有关问题

2013-09-17 
sql2000字符串串联接问题declare @s varchar(50)declare @s1 varchar(50)set @schar(98)+char(137)+char(

sql2000字符串串联接问题
declare @s varchar(50)
declare @s1 varchar(50)
set @s=char(98)+char(137)+char(76)+char(137)+char(98)+char(152)
set @s1=char(98)
set @s1=@s1+char(137)
set @s1=@s1+char(76)
set @s1=@s1+char(137)
set @s1=@s1+char(98)
set @s1=@s1+char(152)
print @s  b乱码
print @s1  bLb
由于上面的结果不同,而我要在自定义的函数中通过循环语句取得字符串串联@s的结果,请问怎样实现?
[解决办法]
你目前得到的@s和@s1都是null
[解决办法]
select char(98)+char(137)+char(76)+char(137)+char(98)+char(152)
/*
NULL
*/

select char(137)  --ascii=137是个空值
/*
NULL
*/

任何一个值空值相加结果都是空的

[解决办法]
你试试把最前两行改成
declare @s nvarchar(50)
declare @s1 nvarchar(50)
[解决办法]
这样写结果相同,


declare @s nvarchar(50)
declare @s1 nvarchar(50)

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

print @s

print @s1

[解决办法]

declare @a varchar(50)
declare @b varchar(50)

set @a=char(135)
print '---print @a---'
print @a
print '----over----'

print '---print @a=@a+char(97)---'
set @a=@a+char(97)

print @a
print '-------over---------'



print '------print char(135)+char(97)--------'
set @b=char(135)+char(97)
print @b
print '----over----'
 

print '------print char(97)+char(135)--------'
set @b=char(97)+char(135)
print @b
print '----over----'




-----------输出结果--------------
---print @a---
?
----over----


---print @a=@a+char(97)---

-------over---------
------print char(135)+char(97)--------

----over----
------print char(97)+char(135)--------
a?
----over----

热点排行