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

一个很小提问

2013-03-12 
一个小小的提问DECLARE @e NVARCHAR(MAX)CREATE TABLE #a(moblies int)SET @eSELECT @e@e+dbo.DP_Mobi

一个小小的提问

DECLARE @e NVARCHAR(MAX)
CREATE TABLE #a(moblies int)
SET @e=''
SELECT @e=@e+dbo.DP_Mobiles.UserName+','
FROM #a,dbo.DP_Mobiles
WHERE #a.moblies=dbo.DP_Mobiles.MobileId
IF LEN(@e)=1
   SET @e=':无'
ELSE
   SET @e=SUBSTRING(@e,1,LEN(@e)-1)
PRINT @e

DROP TABLE #a

代码是这样的,我想试试当#a是空的时候,是不是输出':无'这个东东啊?但弹出提示消息 537,级别 16,状态 5,第 10 行
传递给 LEFT 或 SUBSTRING 函数的长度参数无效。

还有几个小问题:LEN(@e)=1语句中,如果#a为空,那@e赋值就是‘,’,逗号算不算一个字符啊?SUBSTRING的具体用法
而且这段语句我理解的有点模糊,大神们能跟我说说么? sql len SUBSTRING
[解决办法]
IF LEN(@e)=1
=>
IF LEN(@e)<1
[解决办法]
查询赋值的时候,如果查询不到数据,就相当于赋值语句没有执行,@e的值没有变

热点排行
Bad Request.