试一下这样写:create or replace procedure testnull1 as declare @discount tinylntbegin if (@discount =0) print 'no rows'else if (@discount =1) print '1 row'else print case (@discount as tinylnt)+'rows'endif end
很显然是oracle嘛!注意,语句结尾需要;号
case (@discount as tinylnt)+'rows' 是什么意思呢?。想干嘛?
case有问题. 其实我有时分不清是贴主的笔误呢还是什么
create procedure testnull1 asdeclare @disscount tinyintif (@disscount =0) begin print 'no rows' end else if (@disscount =1) begin print '1 row' end else begin print (convert(varchar,@disscount) )+' rows' end
create procedure testnull1 @discount tinylnt asif (@discount =0)begin print 'no rows' end else if (@discount =1) begin print '1 row' end else begin print case (@discount as tinylnt)+'rows' end
declare @discount tinylntbegin
if (@discount =0)
print 'no rows'else if (@discount =1)
print '1 row'else
print case (@discount as tinylnt)+'rows'endif
end
其实我有时分不清是贴主的笔误呢还是什么
asdeclare @disscount tinyintif (@disscount =0)
begin
print 'no rows'
end
else if (@disscount =1)
begin
print '1 row'
end
else
begin
print (convert(varchar,@disscount) )+' rows'
end
1:ORACLE的语法不同于SQL SERVER的,same666的一看就是SQL SERVER语法!
2: 看一下SQL语法,as 后面应该跟什么!
@discount tinylnt
asif (@discount =0)begin
print 'no rows'
end
else if (@discount =1) begin
print '1 row'
end
else begin
print case (@discount as tinylnt)+'rows'
end
1、 tinylnt----------->tinyint
2、 倒数第二行case----->cast