sql >> データベース >  >> RDS >> Sqlserver

引用符の間のコンマをスペースに置き換えます

    以下を試してください:

    DECLARE @str nvarchar(max) = '0150566115,"HEALTH 401K","IC,ON","ICON HEALTH 401K",,,1,08/21/2014'
    SELECT
      SUBSTRING(@str, 1, CHARINDEX('"', @str, 1) - 1)
      + REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING(@str, CHARINDEX('"', @str, 1), LEN(@str) - CHARINDEX('"', REVERSE(@str), 1) - CHARINDEX('"', @str, 1) + 2), ',', ' ' + CHAR(7) + ' '), CHAR(7) + ' ', ''), '" "', ','), '"', '')
      + REVERSE(SUBSTRING(REVERSE(@str), 1, CHARINDEX('"', REVERSE(@str), 1) - 1))
    
    
    --Explaination
    --Extracting the portion of the string before the first occurrence of '"'.
    DECLARE @part1 nvarchar(max) = SUBSTRING(@str, 1, CHARINDEX('"', @str, 1) - 1)
    SELECT
      @part1
    
    --String between first and last occurrence of '"' and removing unwanted characters.
    DECLARE @part2 nvarchar(max) = SUBSTRING(@str, CHARINDEX('"', @str, 1), LEN(@str) - CHARINDEX('"', REVERSE(@str), 1) - CHARINDEX('"', @str, 1) + 2)
    SET @part2 = REPLACE(REPLACE(REPLACE(REPLACE(@part2, ',', ' ' + CHAR(7) + ' '), CHAR(7) + ' ', ''), '" "', ','), '"', '')
    SELECT
      @part2
    
    --String after the last occurrence of '"'
    DECLARE @part3 nvarchar(max) = REVERSE(SUBSTRING(REVERSE(@str), 1, CHARINDEX('"', REVERSE(@str), 1) - 1))
    SELECT
      @part3
    
    --Concatenation
    SELECT
      @part1 + @part2 + @part3
    

    HTH!!!



    1. JSON配列内のJSONオブジェクトのPostgreSQLセットフィールド

    2. データ探索のためにMetabaseをMySQLに接続する

    3. PostgreSQLで更新/置換操作を高速化するにはどうすればよいですか?

    4. T-SqlのタイムスタンプはC#ではどういう意味ですか?