如果我有一個由以「/」字符分隔其他字符串的字符串(XXX ... XXX/XXX/XXXX),我怎樣才能得到最後和去年差不多用t部(前最後一) -sql?它應該是charindex()和right()的組合。怎樣才能在T-SQL「/」分隔字符串幾乎最後一個子?
2
A
回答
10
declare @s varchar(50);
set @s = 'aaaaa/bbbbb/ccccc/ddddd/eeeee'
/* last one: */
select
RIGHT(@s, CHARINDEX('/', REVERSE(@s)) - 1)
/* penultimate one */
select
RIGHT(
LEFT(@s, LEN(@s) - CHARINDEX('/', REVERSE(@s))),
CHARINDEX('/', REVERSE(
LEFT(@s, LEN(@s) - CHARINDEX('/', REVERSE(@s)))
)) - 1
)
「最後一個」 是非常簡單的,沒有任何解釋需要。
的「倒數第一位」基本上等於「最後一個」,與替代的@s
所有出現:
LEFT(@s, LEN(@s) - CHARINDEX('/', REVERSE(@s)))
產生'aaaaa/bbbbb/ccccc/ddddd'
要檢查是否有足夠的斜槓在字符串這個表達式成功,你可以做
CASE WHEN LEN(@s) - LEN(REPLACE(@s, '/', '')) >= 2
THEN /* expression here */
ELSE /* error value here */
END
1
你可以用替換「/」「」並使用PARSENAME。
下面是使用它SO回答:Split String in SQL
1
當你有4條或更少分隔件PARSENAME是唯一的好.. ..here是我的解決方案:
CREATE FUNCTION Piece(@string as varchar(1000),@delimiter as char(1),@piece as int)
RETURNS varchar(1000)
AS
BEGIN
declare @Items table (Piece int,Item varchar(8000) NOT NULL)
declare @return varchar(1000)
DECLARE @Item As varchar(1000), @Pos As int
DECLARE @piecenum AS int
SET @piecenum=1
WHILE DATALENGTH(@string)>0
BEGIN
SET @Pos = CHARINDEX(@delimiter,@string)
IF @Pos = 0 SET @Pos = DATALENGTH(@string)+1
SET @Item = LTRIM(RTRIM(LEFT(@string,@Pos-1)))
IF @Item<>'' INSERT INTO @Items SELECT @piecenum, @Item
SET @[email protected]+1
SET @string=SUBSTRING(@string,@Pos+DATALENGTH(@delimiter),1000)
END
SELECT @return=Item FROM @Items WHERE [email protected]
RETURN @return
END
這樣:
select dbo.Piece('a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q',',',10)
結果 'J'
相關問題
- 1. 我怎樣才能子串字符串?
- 2. 我怎樣才能比較一個字符串與幾個值?
- 3. 我怎樣才能從字符串中獲得幾個字符?
- 4. 我怎樣才能在一個字符串中替換多個子字符串?
- 5. 我怎樣才能字符串化幾乎有效的JSON在Python
- 6. 我怎樣才能把每個記錄第一和最後一個字符在Windows分隔的文件?
- 7. 我怎樣才能挑出一個字符串後的單詞?
- 8. 我怎樣才能用連字符分割這個字符串?
- 9. 我怎樣才能字符串數組的子分類
- 10. 我怎樣才能得到在JAVA字符串的最後一行
- 11. 在分隔符後面查找最後一個字符串:Javascript
- 12. 我怎樣才能替換一個字符串在PHP網址
- 13. 我怎樣才能提供一個值在幾分鐘內setAnimationDuration?
- 14. 我怎樣才能從字符串
- 15. 我怎樣才能從字符串
- 16. 我怎樣才能像由一個特殊的字符和字符串的所有子後一個數字 - C#
- 17. 我怎樣才能改變一個數字,字符串
- 18. PHP:我怎樣才能將這個字符串正確分開?
- 19. 我怎樣才能把它分成兩個字符串?
- 20. 我怎樣才能拆分這個字符串
- 21. 我怎樣才能用一個空格從整個字符串
- 22. 我怎樣才能分割字符串,然後將字符串的每個部分在文本框中
- 23. 我怎樣才能提取一個字符串使用C#子串
- 24. 我怎樣才能區分字符串列表在Django模板
- 25. 我怎樣才能去拼接一個字符串來創建只使用最後一個字符串的一部分的新字符串?
- 26. 我怎樣才能分開字符串中的字母繪圖
- 27. 我怎樣才能把一個字符串數組
- 28. 我怎樣才能綁定到一個字符串數組?
- 29. 我怎樣才能定義一個字符串結構?
- 30. 分割Python字符串中的最後一個分隔符?
+1。這是一個很好的答案;我仍然喜歡PARSENAME! ;) – 2009-08-08 12:34:13