2

次のフィールドとエントリがある場合、最後の4文字に数字以外の文字が含まれる3つのエントリを見つけるにはどうすればよいですか?

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

RightLike "[A-Z]*"の組み合わせになると思いますが、うまくいきRight([Field1], 4) = Like "[A-Z]*"ません。

編集:最後の4文字のいずれかが数値以外のエントリを探しています。

ありがとう!

4

2 に答える 2

1

次のように、最後の4文字を取得して、一度に1文字ずつ比較できます。

WHERE RIGHT(Field1, 4) LIKE '[A-Z][A-Z][A-Z][A-Z]'

この例がSQL2008にあることは知っていますが、これも同様にそれを示すSQLFiddleです。

編集

少なくとも1つの非数値文字を含む(つまり、すべて0〜9ではない)フィールドが必要な場合は、非数値値(LIKE '*[^0-9]*')を検索し、4文字すべてが数値(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 に答える