代码之家  ›  专栏  ›  技术社区  ›  Doonie Darkoo

从变量中提取特定字符串

  •  1
  • Doonie Darkoo  · 技术社区  · 6 年前

    我有一个包含动态字符串的变量。我想得到一个等于 COATitle

    DECLARE @String Varchar(250)
     SET @String = 'COATitle = ''Hello'' AND Date = ''2018-10-09'' AND Name = ''Warner Bros'''
    
     SELECT @String AS String
    

    这个字符串是从前端提供的,所以用户也可以按不同的顺序输入。例如

    SET @String = 'Date = ''2018-10-09'' AND COATitle = ''Hello Tonia'' AND Name = ''Warner Bros'''
    SET @String = 'COATitle = ''Hello'' AND Name = ''Warner Bros'' Date = ''2018-10-09'' AND '
    SET @String = 'COATitle = ''Hello World'' AND Date = ''2018-10-09'' AND Name = ''Warner Bros'''
    SET @String = 'COATitle = ''Piece of Cake'' AND Date = ''2018-10-09'' AND Name = ''Tim Martin'''
    

    1: Hello Tonia
    2: Hello
    3: Hello World
    4: Piece of Cake
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Tim Biegeleisen    6 年前

    COATitle = ' ,一直持续到下一个结束单引号之前。

    SELECT
        word,
        SUBSTRING(word,
                  CHARINDEX('COATitle = ''', word) + 12,
                  CHARINDEX('''', word, CHARINDEX('COATitle = ''', word) + 12) -
                      CHARINDEX('COATitle = ''', word) - 12) AS target
    FROM yourTable;
    

    enter image description here

    Demo