簡體   English   中英

如何以良好的性能改進查詢以使用SQL Server拆分字符串

[英]How to improve my query with good performance to split a string with SQL Server

我可以從下表中拆分一個字符串,但查詢時間過長。 我認為可能會有另一個查詢,使它與SQL Server更加專業。

例如: D:\\Desktop\\English Club\\Haloween S\\S.jpg 結果必須是image file之前的image file夾名稱,如Halowwen SScreenshots

CREATE TABLE path(
  pathlink nvarchar(300)
)
INSERT INTO path VALUES('D:\Desktop\English Club\Haloween S\S.jpg')
INSERT INTO path VALUES('C:\Users\Safari\Pictures\Screenshots\Rate.png')
INSERT INTO path VALUES('T:\Users\users\Documents\Emicsoft Studio\ent.gif')

我的查詢:

SELECT RIGHT(LEFT(pathlink, CHARINDEX(REVERSE(LEFT(REVERSE(pathlink), CHARINDEX(('\'), REVERSE(pathlink)))), pathlink)-1),
        CHARINDEX(('\'), REVERSE(LEFT(pathlink, CHARINDEX(REVERSE(LEFT(REVERSE(pathlink), CHARINDEX(('\'), REVERSE(pathlink)))), pathlink)-1)))-1)
FROM path

SQLFIDDLE: http ://sqlfiddle.com/#!6/22ecc/2

試試這個。 Dono這是否是您的問題的更好解決方案! 但是我試圖減少String functions的使用,然后減少您的使用。

SELECT Reverse(LEFT(Substring(Reverse(pathlink), Charindex('\', Reverse(pathlink)) + 1, 
       Len(pathlink)), Charindex('\', Substring(Reverse(pathlink), Charindex('\', Reverse(pathlink)) + 1, Len(pathlink))) - 1))
FROM   path 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM