1
參見下面的例子帽符號(^)不能正常工作
where '1|2|||1|' like '%%|%%|%%|%%|[^3]|' /* it will return true if the string between last two pipe symbols is not like '3'*/
上面的代碼只是正常工作。
以同樣的方式,我需要爲最後兩個管道之間的字符串建立一個表達式,而不是像10或11那樣。或者至少不是像10那樣。所以像下面這樣嘗試。
where '1|2|||8|' like '%%|%%|%%|%%|[^10]|'
上面的語句爲1,0返回false和10,而不是僅僅10.因此上述查詢認爲1作爲單獨的字符串和0作爲一個單獨的字符串。 我期待一個表達式,只有當最後兩個管道之間的字符串是10時,纔會返回false。對於1或0不是。
我也嘗試使用大括號。但它的行爲有所不同。
where '1|2|||8|' like '%%|%%|%%|%%|[{^10}]|
此外,如果你可以得到一個表達 - 最後兩管之間的字符串不應該是10或11
注:我不能用 'OR' 或在 'NOT LIKE'查詢。
任何想法?
感謝您的回答。但我需要一個表達式,它應該返回1和0的真值,假的值爲10. – Maximus
@Sivakumar:LIKE不會允許這樣做,它不是那麼強大。你說你不能有NOT或OR,所以我會建議一個CLR函數來允許正則表達式 – gbn
是的,我也使用了正則表達式,就像你在我的問題中看到的那樣。它不適用於多個數字。事情需要知道在正則表達式中將字符分組爲單個字符串的方式。 – Maximus