sqlserver 自定义函数或存储过程转 postgresql
nvarchar要修改为varchar
postgresql的body需要$$ …. $$包含起来
postgresql 只需要一对BEGIN END,条件和while循环不需要BEGIN和END
变量需要去掉@, @b -> b;
没有isnull 用 coalesce
字符串拼接用 ||
字符串类型和int类型不会自动转换(用作条件时)
没有charindex,用strpos (原字符串,需要查找的)
没有getdate() 用 LOCALTIMESTAMP(0) 代替 参数指秒以下取几位
SET @len=@len+1要修改为 len = len + 1
break修改为exit
CHAR(10) 类型要改为CHR(10)
postgresql的条件和循环 不需要BEGIN和END 嵌套, 条件和循环的语法也和sqlserver有所不同:
1、条件
IF ... THEN ... END IF
IF ... THEN ... ELSE ... END IF
IF ... THEN ... ELSIF ... THEN ... ELSE ... END IF
CASE ... WHEN ... THEN ... ELSE ... END CASE
CASE WHEN ... THEN ... ELSE ... END CASE
2、循环
LOOP
[<>]
LOOP
...
IF ... THEN
CONTINUE [label] [WHEN boolean-expression];
END IF;
EXIT [label] [WHEN boolean-expression];
END LOOP [label];
WHILE
[<>]
WHILE boolean-expression LOOP
...
END LOOP [label];
FOR
[<>]
FOR name IN [REVERSE] expression .. expression [BY expression] LOOP
...
END LOOP [label];