我想使用SQL模式匹配來檢查字符串值是否在正確的格式。如何使用SQL模式匹配檢查特定字符串的結尾?
串代碼應該有正確的格式:
alphanumericvalue.alphanumericvalue
因此,以下是有效的代碼:
D0030.2190
C0052.1925
A0025.2013
而下面是無效代碼:
D0030
.2190
C0052.
A0025.2013.
A0025.2013.2013
到目前爲止,我有以下SQL IF c lause檢查字符串是否正確:
IF @vchAccountNumber LIKE '_%._%[^.]'
我相信「_%」部分檢查一個或多個字符。因此,這個語句檢查一個或多個字符,然後是「。」字符,接着是一個或多個字符,並檢查最終字符不是「。」。
看來,這會爲除下列格式的IF子句允許爲有效代碼的所有組合的工作:
A0025.2013.2013
我無法糾正這個IF子句允許它來治療此格式不正確。任何人都可以幫我糾正這個問題嗎?
謝謝。
需要知道SQL供應商,以瞭解模式匹配功能。例如,SQL Server 2005+使用PATINDEX限制了模式匹配,但正則表達式支持需要使用CLR函數... – 2010-06-22 15:57:04
此腳本將部署到SQL Server 2005和SQL Server 2008數據庫。 – Dangerous 2010-06-23 10:27:48