您好我很难用行空间或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 :(得分:0)
您可以使用SPLIT_STR功能
像这样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)
答案 1 :(得分:0)
使用REPLACE
功能将char(10)
替换为换行符。
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")
答案 2 :(得分: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)]>
答案 3 :(得分: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))