我需要格式化查詢的結果,以便它顯示正確的資訊。
我有一個表“檔案名”
id | file name
-------------------
1 | c:\windows\system\system32\user.txt
2 | c:\user\user\arc\eula.txt
3 | z:\networkshares\this\is\where\stuff\goes
4 | z:\servercfgs\pythoncode\libs\convertchar2rsa\c2r.py
5 | serverbackups
查詢將是:
select *
from [file name]
然而,查詢的結果,我需要是:
select [file_name] as 'root_folder'
from [file name]
id | root_folder
-----------------------
1 | windows
2 | user
3 | networkshares
4 | servercfgs
5 | serverbackups
------------------------
uj5u.com熱心網友回復:
由于我們知道第一部分總是<drive letter>:\或沒有,我們可以將子串到位置 4 來開始我們的字串。然后,我們只需要使用 獲取第二個 的索引CHARINDEX,并從中洗掉 4 以獲得我們需要的長度:
select id
, case
when [file name] like '%\%' then SUBSTRING([file name], 4, CHARINDEX('\', [file name], 4) - 4)
else [file name]
end root_folder
from tbl
我們使用 case 陳述句繞過任何沒有驅動器號的東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/377480.html
標籤:sql sql-server 查询语句
