SQL查询的判断语句出错,求更正。
一下是代码段DECLARE@sumintDECLARE@letternvarchar(2)--首位字母DECLARE@numnvarchar(10)--9位随机数字DEC...
一下是代码段
DECLARE @sum int
DECLARE @letter nvarchar(2)--首位字母
DECLARE @num nvarchar(10)--9位随机数字
DECLARE @id nvarchar(10)--ID
DECLARE @age int--年龄
DECLARE @place nvarchar(4)--出生地
DECLARE @edu nvarchar(5)--学历
DECLARE @major nvarchar(6)--专业
DECLARE @jobyears int--工作经验
DECLARE @result int--结果
SET @sum = 100
WHILE @sum > 0
BEGIN
--插入ID数据
SET @letter = char(convert(int,rand()*26+65))--生成ID第一位大写字母
SET @num = RIGHT(1000000000 + CONVERT(bigint, ABS(CHECKSUM(NEWID()))), 9)--生成9位随机数字
SET @id = @letter + @num--随机ID
SET ROWCOUNT @sum
SET @age = RIGHT(100 + cast(20 + rand() * 41 as int), 2)--生成介于20-60的年龄数字
SET @place = (select top 1 name from province order by newid())--从place_Name表随机获得籍贯名称
SET @edu = (select top 1 t1 from edu order by newid())--从education_Name表随机获得学历
SET @major = (select top 1 major from major order by newid())--从major_Name表随机获得专业名称
SET @jobyears = cast(floor(rand() * 11) as int)--生成介于0-10的工作经验的年龄数字
if @age>30 and @age<50 and @edu!= CERT and @edu!= UG and @major!= NONE
begin
if @edu=PHD SET @result=3
begin
else begin if @edu=MBA and @major=BUSAD begin SET @result=2 end end
else begin SET @result=1 end
end
else begin SET @result=0 end
INSERT INTO JAD SELECT
id=@id,
age = @age,
pob = @place,
education = @edu,
major = @major,
jobyears = @jobyears,
results = @result,
FROM syscolumns c1, syscolumns c2
SET @sum = @sum - @@ROWCOUNT
END
错误是:
消息 156,级别 15,状态 1,第 39 行
关键字 'else' 附近有语法错误。
消息 156,级别 15,状态 1,第 40 行
关键字 'else' 附近有语法错误。
消息 156,级别 15,状态 1,第 52 行
关键字 'FROM' 附近有语法错误。
求更正 展开
DECLARE @sum int
DECLARE @letter nvarchar(2)--首位字母
DECLARE @num nvarchar(10)--9位随机数字
DECLARE @id nvarchar(10)--ID
DECLARE @age int--年龄
DECLARE @place nvarchar(4)--出生地
DECLARE @edu nvarchar(5)--学历
DECLARE @major nvarchar(6)--专业
DECLARE @jobyears int--工作经验
DECLARE @result int--结果
SET @sum = 100
WHILE @sum > 0
BEGIN
--插入ID数据
SET @letter = char(convert(int,rand()*26+65))--生成ID第一位大写字母
SET @num = RIGHT(1000000000 + CONVERT(bigint, ABS(CHECKSUM(NEWID()))), 9)--生成9位随机数字
SET @id = @letter + @num--随机ID
SET ROWCOUNT @sum
SET @age = RIGHT(100 + cast(20 + rand() * 41 as int), 2)--生成介于20-60的年龄数字
SET @place = (select top 1 name from province order by newid())--从place_Name表随机获得籍贯名称
SET @edu = (select top 1 t1 from edu order by newid())--从education_Name表随机获得学历
SET @major = (select top 1 major from major order by newid())--从major_Name表随机获得专业名称
SET @jobyears = cast(floor(rand() * 11) as int)--生成介于0-10的工作经验的年龄数字
if @age>30 and @age<50 and @edu!= CERT and @edu!= UG and @major!= NONE
begin
if @edu=PHD SET @result=3
begin
else begin if @edu=MBA and @major=BUSAD begin SET @result=2 end end
else begin SET @result=1 end
end
else begin SET @result=0 end
INSERT INTO JAD SELECT
id=@id,
age = @age,
pob = @place,
education = @edu,
major = @major,
jobyears = @jobyears,
results = @result,
FROM syscolumns c1, syscolumns c2
SET @sum = @sum - @@ROWCOUNT
END
错误是:
消息 156,级别 15,状态 1,第 39 行
关键字 'else' 附近有语法错误。
消息 156,级别 15,状态 1,第 40 行
关键字 'else' 附近有语法错误。
消息 156,级别 15,状态 1,第 52 行
关键字 'FROM' 附近有语法错误。
求更正 展开
2个回答
展开全部
中间一段改成
if @age>30 and @age<50 and @edu!= CERT and @edu!= UG and @major!= NONE
begin
if @edu=PHD SET @result=3
else begin if @edu=MBA and @major=BUSAD begin SET @result=2 end
else begin SET @result=1 end end
end
else begin SET @result=0 end
最后一处from前多了个逗号
if @age>30 and @age<50 and @edu!= CERT and @edu!= UG and @major!= NONE
begin
if @edu=PHD SET @result=3
else begin if @edu=MBA and @major=BUSAD begin SET @result=2 end
else begin SET @result=1 end end
end
else begin SET @result=0 end
最后一处from前多了个逗号
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询