2014-10-30 159 views

回答

1

假設您希望匹配完全由零和空格組成且至少包含一個零的移動號碼。

那麼下面是一個辦法..

WHERE Mobile LIKE '%0%' AND Mobile NOT LIKE '%[^ 0]%' 
+0

這些也會匹配空字符串,對嗎? – Twinkles 2014-10-30 08:46:09

+0

@Twinkles - 是的。在這一刻。我懷疑這是所需的功能。將編輯。 – 2014-10-30 08:48:28

-1
select * 
from Customer.dbo.Human 
where CHARINDEX(Mobile, '0') > 0 

有一些技巧怎麼回事。單個'0'碰巧包含在所有其他案例中,因此它的工作原理是'0'包含在'000'內

重點 - 這是一種糟糕的模式。它會錯誤地識別任何帶零的字符串。任何CharIndex搜索搜索值無效的主鍵或類型屬性標識符是一種危險模式。即如果你不能使用IN('SpecificValue1','SpecificValue2'),那麼退一步重新評估。

我更喜歡的解決方案是不插入未通過驗證的值,在清理例程期間,所有零尋找的字符串將在插入或更新時轉換爲null或空字符串。

+2

即使OP接受這一點,我懷疑它會變成是需要什麼。模式似乎是「完全由零組成」,而不僅僅是「包含零」 – 2014-10-30 08:33:07

1
Where Len(Mobile) - Len(Replace(Mobile, '0', '')) = Len(Mobile) 
+0

爲什麼不能Len哪裏(Replace(Mobile,'0',''))= 0'? – thepirat000 2014-12-07 03:07:50