2012-11-17 84 views
2

我一直在为此搜索整个上午。仅在第一次出现字符/分隔符时分割字符串

我对SQL Server的知识不是很好,而且我没有答案。

具体示例如下:City-Of-StylePart1-Part2

我需要这些例子分成CityOf-StylePart1Part2

我想出了这一小段代码,但是如果字符串包含' - ',它会切换part1和part2。

PARSENAME(REPLACE('sample-string', '-', '.'), 1)) 

任何帮助完成这个(最好没有200线功能)非常感谢。

回答

11

如果我理解正确,这将做这项工作; Click here for the fiddle

DECLARE @s VARCHAR(50)= 'City-Of-Style' 

SELECT SUBSTRING(@s,0,CHARINDEX('-',@s,0)) AS firstPart, 
    SUBSTRING(@s,CHARINDEX('-',@s,0)+1,LEN(@s)) AS secondPart 
+0

太棒了!这对我行得通 :) – Yasin

1

如果有字符串中没有破折号,你会得到一个空白。下面的代码片段给出了第一部分,如果有短划线,否则整个字符串。

DECLARE @TextIn VARCHAR(50)= 'City-Of-Style' 
DECLARE @TextOut VARCHAR(500) 
SELECT CASE WHEN CHARINDEX('-',@TextIn)>0 THEN SUBSTRING(@TextIn,0,CHARINDEX('-',@TextIn,0)) ELSE @TextIn END 
相关问题