需要获取单引号中的字符串

时间:2015-09-01 12:44:10

标签: sql sql-server

我有像background-image这样的字符串。

在这里,我需要单独取出how are you 'xyz', bye,这是上面字符串中的单引号。我可以使用SQL查询或存储过程。

3 个答案:

答案 0 :(得分:1)

我认为你正在寻找这个

declare @x  varchar(50)= 'how are you ''xyz'', bye'
select substring(left(@x,charindex(',',@X)-2),charindex('''',@x)+1,len(@x))

答案 1 :(得分:0)

尝试使用正则表达式( regex )。这将有效:\'xyz\'。或者将其用于任何#字符:\'.*\'

答案 2 :(得分:0)

我的数据库中有这个特殊功能:

CREATE FUNCTION ufn_GetTextFromQuotes (@text nvarchar(max), @IsDoubleQuotes bit = 0)
RETURNS nvarchar(max)
AS
BEGIN
  declare @Pos int, @EndPos int, @string nvarchar(max), @Quotes nvarchar(max)

  IF @IsDoubleQuotes = 1 
    SET @Quotes = '"'
  ELSE
    SET @Quotes = ''''

  SET @string = ''
  SET @Pos = CHARINDEX(@Quotes, @text, 0)

  WHILE @Pos != 0
  BEGIN
      SET @EndPos = CHARINDEX(@Quotes, @text, @Pos + 1 )
      IF @string != '' 
        SET @string = @string + ','
      SET @string = @string +SUBSTRING(@text, @Pos + 1 ,  @EndPos - @Pos - 1)

      SET @Pos = CHARINDEX(@Quotes, @text, @EndPos + 1 )
  END
  RETURN @string
END

并使用:

select dbo.ufn_GetTextFromqQuotes('how are you ''xyz'', bye', default ) as result