在SQL如何排除的記錄,如果有一個破折號後超過2個字符..在SQL如何我排除的記錄,如果有3個以上的字符,一個破折號後
例子我只是想返回記錄符合下列條件 AA00000-0
但表也有像AA0000-000 recoreds,AA0000000-00
我需要只返回破折號後有一個單一的數字記錄
在SQL如何排除的記錄,如果有一個破折號後超過2個字符..在SQL如何我排除的記錄,如果有3個以上的字符,一個破折號後
例子我只是想返回記錄符合下列條件 AA00000-0
但表也有像AA0000-000 recoreds,AA0000000-00
我需要只返回破折號後有一個單一的數字記錄
LIKE'% - [0-9]'
填料填充填料填充
假設的SQL Server:
SELECT * FROM records WHERE id NOT LIKE '%-[0-9][0-9]%'
這會在破折號後給出兩個字符 – HLGEM 2010-04-12 15:52:31
請您詳細說明。它應該排除短劃線後有2位或更多位數的記錄。 – 2010-04-12 16:02:08
使用LIKE語句。
Field Like '%-[0-9]'
你使用了哪個數據庫?
在MSSQL中你可以:where fld not like '%-__'
如前所述,數字匹配是跨數據庫並不一致。
對於SQL Server,你可以這樣做:
MyColumn LIKE '%-[0-9]'
數據庫無關的(將只與破折號後的數字得到它):
MyColumn LIKE '%-_'
(將匹配一個數字或破折號後1個字母,但可能已足夠)
+1/2是不可知的,而+1/2用於解釋「破折號後的單個數字」以可能包括破折號後的單個字符。 – MJB 2010-04-12 15:56:00
感謝所有答案,我使用的解決方案是
Like '%-_'
單下劃線表示破折號
爲了什麼數據庫之後的第一個數字?跨數據庫的字符串比較並不一致支持... – 2010-04-12 15:44:01