Sql server 如何在sql中拆分给定字符串
我有上面的字符串,我想在输出如下Sql server 如何在sql中拆分给定字符串,sql-server,split,Sql Server,Split,我有上面的字符串,我想在输出如下 Declare @string VARCHAR(8000) SELECT @string ='--testname="%SP_FVT_HOME%\Runner.py" --testCommandline="-slot %DPorting% -fvt \"--playlist=AP114 %PVR% --randomseed=%RANDOM_SP% --testdur=%TESTDURATION%\" -Production %PRODUCTION% 请帮助我
Declare @string VARCHAR(8000)
SELECT @string ='--testname="%SP_FVT_HOME%\Runner.py" --testCommandline="-slot %DPorting% -fvt \"--playlist=AP114 %PVR% --randomseed=%RANDOM_SP% --testdur=%TESTDURATION%\" -Production %PRODUCTION%
请帮助我您可以编写函数或存储过程,也可以编写普通代码。大概是这样的:
%SP_FVT_HOME%,
%DPorting%,
%PVR%,
%RANDOM_SP%,
%TESTDURATION%,
%PRODUCTION%
DECLARE@string VARCHAR(8000)
声明@temp表(字符串VARCHAR(100))
选择@string='--testname=“%SP\u FVT\u HOME%\Runner.py”--testCommandline=“-slot%DPorting%-FVT\”--playlist=AP114%PVR%--randomseed=%RANDOM\u SP%--testdur=%TESTDURATION%\”--Production%Production%'
声明@string_result VARCHAR(8000)=”
而CHARINDEX(“%”,@string)0
开始
选择@string=REPLACE(@string,LEFT(@string,CHARINDEX('%,@string)),'')
选择@string_result='%'+左(@string,CHARINDEX('%',@string))
选择@string=REPLACE(@string,LEFT(@string,LEN(@string\u result)-1),“”)
插入@temp SELECT@string\u结果
结束
从@temp中选择*
试试这个,它可能不是100%可靠的:
DECLARE @string VARCHAR(8000)
DECLARE @temp TABLE(string VARCHAR(100))
SELECT @string ='--testname="%SP_FVT_HOME%\Runner.py" --testCommandline="-slot %DPorting% -fvt \"--playlist=AP114 %PVR% --randomseed=%RANDOM_SP% --testdur=%TESTDURATION%\" -Production %PRODUCTION%'
DECLARE @string_result VARCHAR(8000) = ''
WHILE CHARINDEX('%', @string) <> 0
BEGIN
SELECT @string = REPLACE(@string, LEFT(@string, CHARINDEX('%', @string)), '')
SELECT @string_result = '%' + LEFT(@string, CHARINDEX('%', @string))
SELECT @string = REPLACE(@string, LEFT(@string, LEN(@string_result)-1), '')
INSERT INTO @temp SELECT @string_result
END
SELECT * FROM @temp
请格式化你的问题ễn Hả我三ều、 非常感谢,真的非常感谢你的才华。@RajPatel,因为你是新来的,所以请允许我一个提示:你说“谢谢”真是太好了,但读这篇文章会更亲切。
DECLARE @string VARCHAR(8000)
SELECT @string ='--testname="%SP_FVT_HOME%\Runner.py" --testCommandline="
-slot %DPorting% -fvt \"--playlist=AP114 %PVR%
--randomseed=%RANDOM_SP% --testdur=%TESTDURATION%\" -Production %PRODUCTION%'
;WITH CTE as
(
SELECT t.c.value('.', 'VARCHAR(2000)') val, row_number() over(ORDER BY (SELECT 1)) rn
FROM (
SELECT x = CAST('<t>' +
REPLACE(@string, '%', '</t><t>') + '</t>' AS XML)
) a
CROSS APPLY x.nodes('/t') t(c)
)
SELECT '%' + val + '%' FROM CTE
WHERE rn % 2 = 0
%SP_FVT_HOME%
%DPorting%
%PVR%
%RANDOM_SP%
%TESTDURATION%
%PRODUCTION%