给定以下字段和条目,如何找到最后 4 个字母中包含非数字字符的 3 个条目?
Field1
------
MA1234
DC4567
OHABCD
CAWXYZ
FLLMNO
MI9876
我猜这将是 and 的组合Right
,Like "[A-Z]*"
例如Right([Field1], 4) = Like "[A-Z]*"
但这不起作用。
编辑:我正在寻找最后 4 个字符中的任何一个不是数字的任何条目。
谢谢!
您可以抓取最后四个字符,一次比较一个字符,如下所示:
WHERE RIGHT(Field1, 4) LIKE '[A-Z][A-Z][A-Z][A-Z]'
我知道该示例在 SQL 2008 中,但这里有一个 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]'
这是答案:
SELECT *
FROM
(
VALUES
('MA1234'),
('DC4567'),
('OHABCD'),
('CAWXYZ'),
('FLLMNO'),
('MI9876')
) v(Code)
WHERE Code like '*[A-Z][A-Z][A-Z][A-Z]'