【问题标题】:Teradata FOR CURSOR to SQL Server objectTeradata FOR CURSOR 到 SQL Server 对象
【发布时间】:2014-12-18 14:08:51
【问题描述】:

我是 Teradata 的新手,我正在尝试将大型存储过程迁移到 SQL Server (T-SQL)。我有一个游标语句(如下),我试图理解它。它肯定是一个光标,但前面的 FOR 让我感到困惑。

     FOR clmn_cursor2 AS clmn_cursor2 CURSOR FOR
             SELECT LTRIM(RTRIM(cmd.src_attr_txt)) src_attrib,
                                               case 
                                               when (CHARINDEX(' as ' ,cmd.src_attr_txt)> 0) 
                                               then SUBSTRING(cmd.src_attr_txt,CHARINDEX(' as ',LTRIM(cmd.src_attr_txt))+4, LEN(cmd.src_attr_txt))
                                               else SUBSTRING(cmd.src_attr_txt,CHARINDEX('.' ,LTRIM(cmd.src_attr_txt))+1, LEN(cmd.src_attr_txt))
                                               end 'col_null_var'
                          FROM  t_srch_res_cfg cmd WHERE cmd.srch_catg_id= @search_cat_id
                          ORDER BY cmd.attr_disp_ord
      DO
             SET @v_select_stmt = @v_select_stmt + clmn_cursor2.src_attrib;
             SET @v_col_null_stmt = (v_col_null_stmt) + 'NULL as ' + (clmn_cursor2.col_null_var)
      END FOR; 

上面的代码是什么意思?我想出了选择部分,但无法理解 FOR CURSOR 的事情。在 SQL Server 2012 上如何才能最好地实现这一点?

谢谢。

【问题讨论】:

    标签: sql-server-2008 stored-procedures sql-server-2012 cursor teradata


    【解决方案1】:

    我自己找到了答案。只是把它放出来,以便有人可以使用它。 上面是一个带有 for 循环的游标。它将追加 select 语句中的每一行并创建一个语句。

    【讨论】:

      猜你喜欢
      • 2018-03-15
      • 2014-12-22
      • 1970-01-01
      • 2017-09-14
      • 2015-09-30
      • 2015-03-03
      • 1970-01-01
      • 2014-06-19
      • 2012-08-05
      相关资源
      最近更新 更多