首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SQL Server中拆分特定字符后的字符串?

如何在SQL Server中拆分特定字符后的字符串?
EN

Stack Overflow用户
提问于 2018-02-08 17:34:35
回答 2查看 59关注 0票数 1

我一直在关注问题:我有一个列,其中包含许多字符串。如下所示:

代码语言:javascript
复制
"Shop/Kaufprozess/Zahlungsart u. Zustellung"

前两个单词总是不同的。例如,这可以是

代码语言:javascript
复制
"HTML-Title/Kaufprozess/Zahlungsart u. Zustellung" 

代码语言:javascript
复制
"Info/Template/Zahlungsart u. Zustellung“  
"tpl_landingpage/Kaufprozess/Zahlungsart u. Zustellung“ etc.

在这个字符串中,我希望只有前两个wards!示例:原文:

代码语言:javascript
复制
„Shop/Kaufprozess/Zahlungsart u. Zustellung“

我想要保留:Shop/Kaufprozess

我该怎么做呢?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2018-02-08 17:39:51

解决方案

代码语言:javascript
复制
DECLARE @ AS VARCHAR(MAX) = 'Shop/Kaufprozess/Zahlungsart u. Zustellung'
SELECT SUBSTRING (@,1, CHARINDEX('/',@, CHARINDEX('/',@,0)+1) - 1 )

输出

代码语言:javascript
复制
    --------------------
    Shop/Kaufprozess

(1 row affected)
票数 3
EN

Stack Overflow用户

发布于 2018-02-08 17:58:55

试试这段代码

代码语言:javascript
复制
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 

结果

代码语言:javascript
复制
String                                                  ReqString
-----------------------------------------------------------------------------------
Shop/Kaufprozess/Zahlungsart u. Zustellung              Shop/Kaufprozess
Info/Template/Zahlungsart u. Zustellung                 Info/Template
tpl_landingpage/Kaufprozess/Zahlungsart u. Zustellung   tpl_landingpage/Kaufprozess
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48682044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档