2016-05-14 12 views
0

こんにちは、私はラインスペースまたはchar(10)SQLクエリの削除、余分な行の文字列でCHAR(10)

テスト文字列

"1st line string char(10) char(10) 2nd line string char(10) char(10) char(10) 3rd line string char(10)" 

期待される結果との文字列に置き換える策定に苦労を抱えています

1st line string 
2nd line string 
3rd line string 

どのようにこの出力を達成するには?

+0

あなたはWindowsまたはLinux上にいますか?期待される結果は不明です。あなたのファイルにはどの文字が新しい行を構成していますか? MSSQLに –

+0

、あなたが (10)「1行目の文字列」+文字を選択+「2行目の文字列」+文字缶(10)+「3行目の文字列」 –

答えて

0

あなたは改行文字でchar(10)を置き換えるためにREPLACE機能を使用して、この

SELECT SPLIT_STR("1st line string char(10) char(10) 2nd line string char(10) char(10) char(10) 3rd line string char(10)", 'char(10)', 1) , 
     SPLIT_STR("1st line string char(10) char(10) 2nd line string char(10) char(10) char(10) 3rd line string char(10)", 'char(10) ', 3) , 
SPLIT_STR("1st line string char(10) char(10) 2nd line string char(10) char(10) char(10) 3rd line string char(10)", 'char(10) ', 5) 
+0

はあなたに感謝が、それは「1行目の文字列2行目の文字列の3番目が生成されます。 1行目の文字列の文字「私の予想される出力は次のようになり、」行の文字列(10)第二行の文字列はchar(10)3行目の文字列はchar(10)。あなたが質問に書いた同じ期待される出力はありません – iCeR

+0

@iCeR。 – Barmar

0

ようSPLIT_STR機能

を使用することができます。

REPLACE("1st line string char(10) char(10) 2nd line string char(10) char(10) char(10) 3rd line string char(10)", "char(10)", "\n") 
0

これは、あなたが探してほぼ何のようになります。 あなたはあなたに文字列を変更する必要がありますDBフィールド

SELECT 
TRIM(
    REPLACE(
    REPLACE( 
     REPLACE("1st line string char(10) char(10) 2nd line string char(10) char(10) char(10) 3rd line string char(10)", 
      ' char(10) char(10) char(10) ', 
      '\n'), 
     ' char(10) char(10) ', 
     '\n'), 
     ' char(10)', 
     '\n') 
    ); 

MariaDB [(none)]> SELECT 
    -> TRIM(
    -> REPLACE(
    ->  REPLACE(
    ->  REPLACE("1st line string char(10) char(10) 2nd line string char(10) char(10) char(10) 3rd line string char(10)", 
    ->    ' char(10) char(10) char(10) ', 
    ->    '\n'), 
    ->   ' char(10) char(10) ', 
    ->   '\n'), 
    ->  ' char(10)', 
    ->  '\n') 
    ->  ) AS result; 
+-----------------------------------------------------+ 
| result            | 
+-----------------------------------------------------+ 
| 1st line string 
2nd line string 
3rd line string 
| 
+-----------------------------------------------------+ 
1 row in set (0.00 sec) 

MariaDB [(none)]> 
0

は君たちに感謝サンプル、私が思いつきましたこれとともに。私はそれを機能に翻訳します

DECLARE @str AS VARCHAR(MAX) 

    SET @str = 'TEST ' + CHAR(10) + CHAR(10) + CHAR(10) + CHAR(10) + CHAR(10) + CHAR(10) + CHAR(10) + CHAR(10) + CHAR(10) + CHAR(10) + CHAR(10) + CHAR(10) + CHAR(10) + CHAR(10) + CHAR(10) + 'TEST ' + CHAR(10)+ CHAR(10)+ CHAR(10)+ CHAR(10)+ 'TEST ' + CHAR(10)+'TEST ' + CHAR(10) + CHAR(10)+ CHAR(10); 

    SELECT @str = REPLACE(@str,CHAR(10),'{}') 

    WHILE (CHARINDEX('}{',CONVERT (VARCHAR(MAX),@str),0) >0) 
     SELECT @str = REPLACE(@str,'}{','') 



    SELECT REPLACE(@str,'{}',CHAR(10)) 
関連する問題