鉴于以下字段和条目,如何找到最后4个字母中包含非数字字符的3个条目?
Field1
------
MA1234
DC4567
OHABCD
CAWXYZ
FLLMNO
MI9876
我猜它会是Right
和Like "[A-Z]*"
的组合,例如Right([Field1], 4) = Like "[A-Z]*"
,但这不起作用。
编辑:我正在寻找任何最后4个字符中任何一个都是非数字的条目。
谢谢!
答案 0 :(得分:1)
您可以抓取最后四个字符,并一次比较一个字符,如下所示:
WHERE RIGHT(Field1, 4) LIKE '[A-Z][A-Z][A-Z][A-Z]'
我知道这个例子是在SQL 2008中,但是这里的a SQL Fiddle也是如此。
修改强>:
如果您想要包含至少一个非数字字符的字段(即不是全部为0-9),您可以搜索非数字值(LIKE '*[^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]'
答案 1 :(得分:0)
以下是答案:
SELECT *
FROM
(
VALUES
('MA1234'),
('DC4567'),
('OHABCD'),
('CAWXYZ'),
('FLLMNO'),
('MI9876')
) v(Code)
WHERE Code like '*[A-Z][A-Z][A-Z][A-Z]'