【问题标题】:SQL Server script to Teradata Bteq conversionSQL Server 脚本到 Teradata Bteq 的转换
【发布时间】:2021-08-18 18:14:47
【问题描述】:

抱歉,如果标题不清楚。基本上我正在尝试将 SQl 服务器脚本以下重写为 Teradata Bteq 。我无法在 Bteq 中使用 while 循环。请帮助。

DECLARE @LOADID smallint
DECLARE @MAXLOADID smallint 
DECLARE @VALUE_S numeric(10,0)
DECLARE @VALUE_E numeric(10,0)

SET @LOADID = (SELECT MINLOADID
               FROM   dbo.LOADID_AUD)

SET @MAXLOADID = (SELECT MAXLOADID
                  FROM   dbo.LOADID_AUD)

WHILE @LOADID <= @MAXLOADID
BEGIN
    BEGIN TRANSACTION 

    SET @VALUE_S = (SELECT VALUE_S
                    FROM   dbo.LOADID_AUD_INCR
                    WHERE  LOADIDID = @LOADID)

    SET @VALUE_E = (SELECT VALUE_E
                    FROM   dbo.LOADID_AUD_INCR
                    WHERE  LOADIDID = @LOADID)

    INSERT INTO dbo.TEST_INCR WITH (TABLOCKX)
                    (,LOADID, CL2, CL3, CL4, CL5, CL6, CL7, CL8)
        SELECT 
            @LOADID AS LOADIDID, CL2, CL3, CL4, CL5, CL6, CL7, CL8
        FROM    
            TEST_FACT TF
        WHERE   
            TF.VALUE BETWEEN @VALUE_S AND @VALUE_E

    COMMIT TRANSACTION

    SET @LOADID = @LOADID + 1
END

【问题讨论】:

  • Teradata 仅在存储过程中支持循环等。
  • 感谢您的回复......!我想将其转换为 Bteq 而不是我需要帮助的 Teradata 存储过程
  • Teradata 仅在存储过程中支持循环等。但是这个循环可以很容易地在单个插入/选择语句中转换
  • 我创建了四个变量的易失性表,并想办法将其合并到 select 语句中。你能帮我写脚本吗

标签: sql-server teradata


【解决方案1】:

这应该是您作为单个语句的循环:

INSERT INTO dbo.TEST_INCR 
                    (LOADID, CL2, CL3, CL4, CL5, CL6, CL7, CL8)
WITH cte AS
 ( -- loop rewritten
   SELECT LOADID, VALUE_S, VALUE_E
   FROM   dbo.LOADID_AUD_INCR
   WHERE  LOADID BETWEEN (SELECT MINLOADID
                          FROM   dbo.LOADID_AUD)
                     AND (SELECT MAXLOADID
                          FROM   dbo.LOADID_AUD)
 )
        SELECT 
            cte.LOADID, CL2, CL3, CL4, CL5, CL6, CL7, CL8
        FROM    
            TEST_FACT AS TF
        JOIN cte
          ON TF.VALUE BETWEEN cte.VALUE_S AND cte.VALUE_E
;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-24
    • 2020-09-21
    • 2018-05-24
    • 2013-07-13
    • 2017-08-15
    • 2013-06-11
    • 2020-06-17
    • 2016-09-02
    相关资源
    最近更新 更多