【发布时间】:2016-01-17 18:03:02
【问题描述】:
我有这个程序,但我看不到我的错误,有人吗?我想添加一些文本并只打印人声。
create procedure sacaVocales
@vocales varchar(20)
as
begin
declare @repeticiones int = len(@vocales)
declare @contador int = 1
declare @resultado varchar(20)
declare @dato varchar(1)
while @contador<=@repeticiones
begin
select @dato = SUBSTRING(@vocales, @contador, @contador+ 1)
case @dato
when 'a' then @resultado = @resultado + @dato
when 'e' then @resultado = @resultado + @dato
when 'i' then @resultado = @resultado + @dato
when 'o' then @resultado = @resultado + @dato
when 'u' then @resultado = @resultado + @dato
set @contador = @contador + 1
end
print @resultado
end
我的错误离“案例”很近
【问题讨论】:
-
在
case开始之前缺少end..也是, -
,已添加!什么结局?现在我的错误接近'='
-
@dato 是列别名。你不能在同一个查询中使用它,你正在使用
case -
@dato 是来自子字符串的 varchar,是从我的文本中获取所有长度的方法
-
您在最终的
WHEN之后、SET @contador之前缺少一个END
标签: sql-server tsql case procedure