我有一個表答:如何在選擇中從完整路徑獲取文件名?
Col1 Col2
1 D:\Akagane2\Source\SubModule\ExtractText.vb
2 D:\Akagane2\Source\SubModule\ExtractText.vb
我要選擇輸出表中有數據
Col1 Col2
1 ExtractText.vb
2 ExtractText.vb
選擇PostgreSQL中, 你能幫助我嗎?
我有一個表答:如何在選擇中從完整路徑獲取文件名?
Col1 Col2
1 D:\Akagane2\Source\SubModule\ExtractText.vb
2 D:\Akagane2\Source\SubModule\ExtractText.vb
我要選擇輸出表中有數據
Col1 Col2
1 ExtractText.vb
2 ExtractText.vb
選擇PostgreSQL中, 你能幫助我嗎?
喜歡的東西
SELECT RIGHT('D:\Akagane2\Source\SubModule\ExtractText.vb', POSITION('\' in REVERSE('D:\Akagane2\Source\SubModule\ExtractText.vb')) -1);
在PostgreSQL上。
mole=> CREATE TABLE A (Col1 INTEGER, Col2 VARCHAR);
CREATE TABLE
mole=> INSERT INTO A VALUES (1, 'D:\Akagane2\Source\SubModule\ExtractText.vb');
INSERT 0 1
mole=> INSERT INTO A VALUES (2, 'D:\Akagane2\Source\SubModule\ExtractText.vb');
INSERT 0 1
mole=> SELECT * FROM A;
col1 | col2
------+---------------------------------------------
1 | D:\Akagane2\Source\SubModule\ExtractText.vb
2 | D:\Akagane2\Source\SubModule\ExtractText.vb
(2 rows)
mole=> SELECT Col1, REGEXP_REPLACE(Col2, '.*\\', '') AS col2 FROM A;
col1 | col2
------+----------------
1 | ExtractText.vb
2 | ExtractText.vb
(2 rows)
優雅!對於Linux樣式的路徑(路徑分隔符是/不是\\),這可以工作:SELECT Col1,REGEXP_REPLACE(Col2,'。* /','')AS col2 FROM A; – DaveBoltman
正確,但DOS風格路徑的憎惡是他的問題的一部分 –
啊,當然是的 – DaveBoltman
在這種情況下..你只能使用一個醜陋的字符串操作。如果您使用* PHP *處理結果(例如),則可以驗證文件是否存在文件..並獲取詳細的路徑/名稱/擴展名。 另外,如果您可以修改第一個表格,最好爲'file_name','extension','file_type'添加額外的列。 –
可能的重複:http://stackoverflow.com/questions/13750846/split-out-file-name-from-path-in-postgres –