2

给定以下字段和条目,如何找到最后 4 个字母中包含非数字字符的 3 个条目?

Field1
------
MA1234
DC4567
OHABCD
CAWXYZ
FLLMNO
MI9876

我猜这将是 and 的组合RightLike "[A-Z]*"例如Right([Field1], 4) = Like "[A-Z]*"但这不起作用。

编辑:我正在寻找最后 4 个字符中的任何一个不是数字的任何条目。

谢谢!

4

2 回答 2

1

您可以抓取最后四个字符,一次比较一个字符,如下所示:

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]'
于 2013-03-06T15:19:31.273 回答
0

这是答案:

SELECT *
FROM 
(
    VALUES
        ('MA1234'),
        ('DC4567'),
        ('OHABCD'),
        ('CAWXYZ'),
        ('FLLMNO'),
        ('MI9876')
) v(Code)
WHERE Code like '*[A-Z][A-Z][A-Z][A-Z]'
于 2013-03-06T15:21:26.933 回答