1
A
回答
0
您將需要在SQL中創建一個字符串拆分函數。不幸的是沒有內置到MS SQL中。
1
DECLARE @TExt NVARCHAR(MAX)= '\Stack\Over\Programming\Users\'
DECLARE @Delimiter VARCHAR(1000)= '\' ;
WITH numbers
AS (SELECT ROW_NUMBER() OVER (ORDER BY o.object_id, o2.object_id) Number
FROM sys.objects o
CROSS JOIN sys.objects o2
),
c AS (SELECT Number CHARBegin ,
ROW_NUMBER() OVER (ORDER BY number) RN
FROM numbers
WHERE SUBSTRING(@text, Number, LEN(@Delimiter)) = @Delimiter
),
res
AS (SELECT CHARBegin ,
CAST(LEFT(@text, charbegin) AS NVARCHAR(MAX)) Res ,
RN
FROM c
WHERE rn = 1
UNION ALL
SELECT c.CHARBegin ,
CAST(SUBSTRING(@text, res.CHARBegin+1,
c.CHARBegin - res.CHARBegin-1) AS NVARCHAR(MAX)) ,
c.RN
FROM c
JOIN res ON c.RN = res.RN + 1
)
SELECT *
FROM res
結果:
CHARBegin |Res |RN
1 | \ |1
7 |Stack |2
12 |Over |3
24 |Programming |4
30 |Users |5
在你的情況,你需要的最後一條語句
SELECT * FROM res WHERE Rn=4
1
如果它始終是這是第3和第4 \
的話,以下將做三CK。
DECLARE @String VARCHAR(32)
SET @String = '\Stack\Over\Programming\Users\'
SELECT SUBSTRING(
@String
, CHARINDEX('\', @String, CHARINDEX('\', @String, CHARINDEX('\', @String, 1) + 1) + 1) + 1
, CHARINDEX('\', @String, CHARINDEX('\', @String, CHARINDEX('\', @String, CHARINDEX('\', @String, 1) + 1) + 1) + 1)
- CHARINDEX('\', @String, CHARINDEX('\', @String, CHARINDEX('\', @String, 1) + 1) + 1) - 1)
相關問題
- 1. 一個SQL查詢選擇兩個已知字符串之間的字符串
- 2. SQL查詢字符串
- 3. sql查詢,java字符串
- 4. SQL字符串查詢查詢
- 5. Linq查詢檢查列表和字符串之間的子字符串
- 6. 子查詢之間的SQL
- 7. 在CLOB字段之間查詢字符串
- 8. 甲骨文字符串字段查詢之間
- 9. SQL查詢WHERE字符串LIKE字段
- 10. 在字節之間發送字符串之間的字符串
- 11. DB2 SQL查詢來查找字符串中的非ASCII字符
- 12. 刪除()之間的字符SQL
- 13. 兩個數字之間的查詢
- 14. 在SQL中查詢:字段之間的一對多關係
- 15. SQL查詢檢索兩個日期之間的字段列表
- 16. SQL選擇字符串中兩個字符之間的數據
- 17. SQL Server - 計算兩個字符之間的字符數
- 18. 日期是SQL Server之間的連字符字符串
- 19. 刪除特定字符之間的字符在PL/SQL
- 20. SQL選擇兩個字符串之間的字符串
- 21. 獲取第一2特殊字符之間的字符在SQL
- 22. 查詢字符串中的%2c之類的字符串
- 23. SQL - 如何在一個字段中的分隔符之間查詢
- 24. 通過SQL查詢在字符串中的多個括號之間選擇值
- 25. 在SQL查詢中選擇兩個常量字符串之間的變量
- 26. SQL查詢,比較表,字符串和整數之間的數據
- 27. 查找SYBASE中的字符串之間的相似性SQL
- 28. 查找字符串之間的差異
- 29. 查找字符之間的多串
- 30. 問題的SQL查詢字符串
@ Lieven..Thanks一個lot.This正是我想要的 – 2011-05-02 09:40:09
@ramesh - 沒有提供問題,但解決Dalex具有更好的涼意因素。 – 2011-05-02 09:48:18
也可以使用'PARSENAME(REPLACE(SUBSTRING(@ String,2,len(@String)-2),'','。'),2)'增加涼爽度(但不夠健壯!) – 2011-05-02 11:48:52