代码之家  ›  专栏  ›  技术社区  ›  dtc

在SQL Server存储过程中创建并循环访问列表

  •  2
  • dtc  · 技术社区  · 15 年前

    是否有方法使用T-SQL声明SQL Server存储过程中的项列表,然后循环这些项?

    我想做这样的事:

    input_string = 'my dog has fleas.'
    list_remove = 'a', 'e', 'i', 'o', 'u'
    
    for each item in list remove
        input_string = replace(input_string, item, '')
    end
    

    最后输入的字符串是'my dg hs fls'。

    我知道我们可以在存储过程中创建一个表。这是做这种事情的最好方法吗?

    4 回复  |  直到 15 年前
        1
  •  3
  •   Community CDub    8 年前
        2
  •  2
  •   OMG Ponies    15 年前

    DECLARE @input_string NVARCHAR(25)
    DECLARE @ascii INT
    
    SET @input_string = 'my dog has fleas.'
    SET @ascii = 97
    
    -- 97, 101, 105, 111, 117
    
    WHILE @ascii <= 117
    BEGIN
    
      SET @input_string = REPLACE(@input_string, CHAR(@ascii), '')
    
      SET @ascii = CASE @ascii 
                     WHEN 97 THEN 101
                     WHEN 101 THEN 105
                     WHEN 105 THEN 111
                     WHEN 111 THEN 117
                   END
    END
    
    PRINT @input_string
    
        3
  •  1
  •   SQLMenace    15 年前
        4
  •  1
  •   Oded    15 年前