有个sql 语句转换成 postgresql怎么处理。? 400 报错
@kenyon_君羊 你好,想跟你请教个问题:
请问这个sql 语句,用postgresql怎么写。转换postgresql 过程语句
create PROCEDURE TT_SepSize2
(
@size nvarchar(50),
@a money output,
@b money output,
@c money output,
@d money output
)
as
begin
declare @i int
declare @s nvarchar(50)
set @a=0
set @b=0
set @c=0
set @d=0
--x1:
set @i=CHARINDEX('*',@size) --未找到返回0
if @i>0 --如果找到第1个*
begin
set @s=left(@size,@i-1)
set @a=cast(@s as money) --第1个*的左边是a
set @size=right(@size,len(@size)-@i)
set @i=CHARINDEX('*',@size) --未找到返回0
if @i>0 --如果找到第2个*
begin
set @i=CHARINDEX('*',@size) --未找到返回0
if @i>0 --如果找到
begin
set @s=left(@size,@i-1)
set @b=cast(@s as money) --第2个*的左边是b
set @size=right(@size,len(@size)-@i)
--求z
set @i=CHARINDEX('*',@size) --未找到返回0
if @i>0 --如果找到第3个*
begin
set @s=left(@size,@i-1)
set @c=cast(@s as money)--第3个*的左边是c
set @size=right(@size,len(@size)-@i)
set @i=CHARINDEX('*',@size) --未找到返回0
if @i>0 --如果找到第4个*
begin
set @s=left(@size,@i-1)
set @d=cast(@s as money)--第4个*的左边是c
end else
begin
set @d=cast(@size as money) --如果没有找到第4个*,剩下的数是d
end
end else --如果没有找到第3个*
begin
set @c=cast(@size as money) --如果没有找到第3个*,剩下的数是c
end --求z结束
end else
begin
set @b=cast(@size as money)
end--求y结束
end else --如果没有找到第2个*
begin
set @b=cast(@size as money) --如果没有找到第2个*,剩下的数是b
end--求x2结束
end else --如果没有找到第1个*
begin
set @a=cast(@size as money)--如果没有找到第1个*,整个数是a
end--求x1结束
end
GO
熟悉mssql的话,学一下pg的存储过程语法就可以了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。