我一直在关注问题:我有一个列,其中包含许多字符串。如下所示:
"Shop/Kaufprozess/Zahlungsart u. Zustellung"前两个单词总是不同的。例如,这可以是
"HTML-Title/Kaufprozess/Zahlungsart u. Zustellung" 或
"Info/Template/Zahlungsart u. Zustellung“
"tpl_landingpage/Kaufprozess/Zahlungsart u. Zustellung“ etc.在这个字符串中,我希望只有前两个wards!示例:原文:
„Shop/Kaufprozess/Zahlungsart u. Zustellung“我想要保留:Shop/Kaufprozess
我该怎么做呢?
谢谢!
发布于 2018-02-08 17:39:51
解决方案
DECLARE @ AS VARCHAR(MAX) = 'Shop/Kaufprozess/Zahlungsart u. Zustellung'
SELECT SUBSTRING (@,1, CHARINDEX('/',@, CHARINDEX('/',@,0)+1) - 1 )输出
--------------------
Shop/Kaufprozess
(1 row affected)发布于 2018-02-08 17:58:55
试试这段代码
DECLARE @DataGet TABLE (id INT IDENTITY,String varchar(300))
INSERT INTO @DataGet
SELECT 'Shop/Kaufprozess/Zahlungsart u. Zustellung' UNION ALL
SELECT 'Info/Template/Zahlungsart u. Zustellung' UNION ALL
SELECT 'tpl_landingpage/Kaufprozess/Zahlungsart u. Zustellung'
;WITH cte
AS (SELECT 1 AS Seq,
id,
CHARINDEX('/', string) AS Pos,
string
FROM @DataGet
UNION ALL
SELECT seq + 1,
id,
CHARINDEX('/', string, pos + 1) AS Pos,
string
FROM cte
WHERE pos > 0
AND seq <= 2)
SELECT string,SUBSTRING(string, 0, pos)AS ReqString
FROM (SELECT *,
ROW_NUMBER ()
OVER(
partition BY id
ORDER BY seq ) AS Dup
FROM cte
WHERE pos > 0)dt
WHERE dup = 2
ORDER BY dt.id,
dt.dup ASC 结果
String ReqString
-----------------------------------------------------------------------------------
Shop/Kaufprozess/Zahlungsart u. Zustellung Shop/Kaufprozess
Info/Template/Zahlungsart u. Zustellung Info/Template
tpl_landingpage/Kaufprozess/Zahlungsart u. Zustellung tpl_landingpage/Kaufprozesshttps://stackoverflow.com/questions/48682044
复制相似问题