2017-08-17 218 views
0

在正則表達式,你可以這樣做[交流] +,這將匹配SQL LIKE - 使用括號(字符範圍)匹配匹配整個單詞

  • aaabbbccc
  • abcccaabc
  • cbccaa
  • b
  • AAAAAAAAA

在SQL LIKE似乎塔你可以做相當於「。*」的「%」或[a-c]。是否可以在SQL中使用+(至少一個)量詞來完成[a-c] +?

編輯:只是爲了澄清,所期望的最終查詢看起來像

SELECT * FROM表WHERE列LIKE '[AC] +'

這將然後匹配列表上面,但在例如「xxxxxaxxxx」上不匹配

+0

與正則表達式一起玩的sql服務器函數叫做'patindex()'。 –

回答

1

作爲一般規則,SQL Server的LIKE模式比正則表達式弱得多。爲了您的具體的例子,你可以這樣做:

where col not like '%[^a-c]%' 

也就是說,列不包含任何字符不是一個,b或c。

+0

雖然我的實際問題更加複雜,但這個答案對我在問題中描述的簡化問題沒有幫助,這是一個有效的答案。 –

+0

@KornélRegius。 。 。你應該問一個關於你的實際問題的更多細節的問題。 –

1

可以在SQL中使用正則表達式與如LIKE的組合:

SELECT * FROM Table WHERE Field LIKE '%[^a-z0-9 .]%' 

這個作品在SQL

或者在你的情況

SELECT * FROM Table WHERE Field LIKE '%[^a-c]%' 
+0

我想知道,你是不是指「不喜歡」?所以SELECT * FROM #table WHERE data NOT LIKE'%[^ a-c]%' –

+0

是的,如果你需要選擇所有不包含a-c的東西。 – MirzaS

-3

我看來想要從數據庫中的某些數據,那就是你不完全清楚,你必須在該字段中顯示你的專欄和你想要的所有角色。

+1

如果您需要關於該問題的更多信息,請使用評論部分。 –