2012-03-02 69 views
0

我有一個名爲filePath的列,其數據類型爲TEXT。我怎樣才能比較一個文件路徑與另一個字符串(區分大小寫)?如何比較SQL中的文本數據類型

例子:

SELECT * 
FROM source_code_links 
WHERE filePath = 
     "C:\CtrlSpaceData\CtrlSpace VCS\ba4fe9cbcbdb14a7cbc91fdf65f9e98178afe353\src\servlets\Test.java"; 

我已經試過LIKE,但它不正常工作。 我也試過PATINDEX,但那裏有錯誤,說功能PATINDEX不存在。

這是我試過的東西:

SELECT * FROM source_code_links 
WHERE filePath LIKE "%ba4fe9cbcbdb14a7cbc91fdf65f9e98178afe353\src\servlets\Test.java"; 

SELECT * FROM source_code_links 
WHERE filePath LIKE "C:\CtrlSpaceData\CtrlSpace VCS\ba4fe9cbcbdb14a7cbc91fdf65f9e98178afe353\src\servlets\Test.java"; 

SELECT * FROM source_code_links 
WHERE PATINDEX("C:\CtrlSpaceData\CtrlSpace VCS\ba4fe9cbcbdb14a7cbc91fdf65f9e98178afe353\src\servlets\Test.java", filePath) > 0; 

是否還有其他解決方案可用?

+2

這是用於SQL Server還是......?什麼版本? – 2012-03-02 13:57:25

+0

你能否用'LIKE'以及其他任何你試過的方式發佈整個嘗試? – Rob 2012-03-02 13:59:17

+0

你在文件路徑和其他字符串之間做什麼比較?你想忽略大小寫嗎?你想查看其他字符串是否在指定的文件路徑中?你想看看另一個字符串是否是文件路徑末尾的指定文件名?您是否想測試指定的文件路徑是否與另一個字符串中的文件路徑搜索模式相匹配,如果是,您要使用哪種操作系統的通配符?你想能夠使用不同的子文件夾分隔符(例如'/'而不是'\')嗎?等等? – 2012-03-02 15:06:09

回答

-1

您可以通過使用=運算符或使用<>運算符與其他字符串不相等來查找它是否等於其他字符串。其他選項可能包括使用您提到的like函數,但是您需要通過某種算法獲取另一個字符串的某個部分,然後在刪除字符的地方添加%符號。

0

你需要使用單引號而不是雙引號