鑑於以下字段和條目,如何找到在最後4個字母內具有非數字字符的3個條目?如何在查詢中組合Right和Like函數?
Field1
------
MA1234
DC4567
OHABCD
CAWXYZ
FLLMNO
MI9876
我猜這將是Right
和Like "[A-Z]*"
組合,如Right([Field1], 4) = Like "[A-Z]*"
但不起作用。
編輯:我正在尋找任何最後4個字符是非數字的任何條目。
謝謝!
鑑於以下字段和條目,如何找到在最後4個字母內具有非數字字符的3個條目?如何在查詢中組合Right和Like函數?
Field1
------
MA1234
DC4567
OHABCD
CAWXYZ
FLLMNO
MI9876
我猜這將是Right
和Like "[A-Z]*"
組合,如Right([Field1], 4) = Like "[A-Z]*"
但不起作用。
編輯:我正在尋找任何最後4個字符是非數字的任何條目。
謝謝!
你可以抓住的最後四個字符,並在同一時間,比較它們一個字符是這樣的:
WHERE RIGHT(Field1, 4) LIKE '[A-Z][A-Z][A-Z][A-Z]'
我知道的例子是在2008年SQL,但這裏的a SQL Fiddle演示它一樣好。
編輯:
如果你想有至少一個非數字字符的字段(即不都是0-9),你可以搜索非數字值()並確保所有四個字符不是數字(NOT LIKE '[0-9][0-9][0-9][0-9]'
):
WHERE RIGHT(Field1, 4) LIKE '*[^0-9]*' AND
RIGHT(Field1, 4) NOT LIKE '[0-9][0-9][0-9][0-9]'
that worked ..我結束了使用'WHERE RIGHT(Field1,4)LIKE'[AZ]''這似乎只查找AZ中的4個字母中的1個,這在我原來的問題中沒有考慮到。 – 2013-03-06 15:24:30
我很困惑,你只想在最後四個字母中找到一個字母,還是最後四個字母都必須是字母?如果前者,我會縮小你想要'LIKE'* [A-Z] *''(注意星號) – LittleBobbyTables 2013-03-06 15:27:22
直到現在我才意識到,如果只有最後4個字符中的1個是A-Z,那麼數據是無效的。我編輯了我原來的問題,而我之前評論中的解決方案畢竟沒有成功。 – 2013-03-06 15:29:24
下面是答案:
SELECT *
FROM
(
VALUES
('MA1234'),
('DC4567'),
('OHABCD'),
('CAWXYZ'),
('FLLMNO'),
('MI9876')
) v(Code)
WHERE Code like '*[A-Z][A-Z][A-Z][A-Z]'
聽起來LIK e正則表達式和訪問不能很好地結合在一起。看到這個問題的一些更多的信息 - http://stackoverflow.com/questions/5539141/microsoft-office-access-like-vs-regex – 2013-03-06 15:19:08
@HansUp,AB123C將滿足'在最後4個字母的非數字'條件。我更新了我的原始問題以澄清。謝謝! – 2013-03-07 16:07:12