1

Firebird 和 SQL Server 上有数据库。我在 Firebird 中有工作存储过程。

问题是:如何将其翻译成 T-SQL 语法?

begin
  IF ((:PHONE_N is NULL) or (STRLEN(:PHONE_N)<1))  THEN
    BEGIN
      O_PHONE_N = NULL;
      EXIT;
    END

  IF (STRLEN(PHONE_N) > 3) THEN
    BEGIN
      O_PHONE_N = '(' || SUBSTR(:PHONE_N, 1, 3) || ') ';
      PHONE_N = SUBSTR(:PHONE_N, 4, STRLEN(:PHONE_N));
      IF (STRLEN(:PHONE_N)> 3) THEN
        begin
          O_PHONE_N = O_PHONE_N || SUBSTR(:PHONE_N, 1, 3);
          PHONE_N = SUBSTR(:PHONE_N, 4, STRLEN(:PHONE_N));
          IF (STRLEN(:PHONE_NUMBER)> 0) THEN
            O_PHONE_N = O_PHONE_N || '-' ||:PHONE_N;
        END
      ELSE
        O_PHONE_N = :O_PHONE_N || :PHONE_N;
    END
  ELSE
    O_PHONE_N = :PHONE_N;
end
4

1 回答 1

2

此链接可能会有所帮助:http ://www.firebirdsql.org/manual/migration-mssql-syntax.html

这可能会有所帮助:

  • 前导@标记 T-SQL 变量(例如@phone_n
  • STRLENLEN()在 T-SQL中调用
  • SUBSTRSUBSTRING

查看关于 T-SQL 的优秀 MSDN 文档,了解有关 T-SQL 语法的更多详细信息

于 2012-06-07T08:54:47.967 回答