2

SQL Server2008R2を使用しています。タイプがEQUIPMENTの列を持つテーブルがあります。MACADDRESSnvarchar(50)

有効なMACアドレスのみを含むレポートを作成する必要があります。このフィールドには、過去に必要だった「偽の」MACアドレスが含まれることがあります。

すべての偽のMacアドレスには、Macアドレスに対して無効な文字が含まれています。有効な文字は、0〜9の数字とafまたはAFの文字です。有効なMACアドレスはすべて12文字です。単純な問題に正規表現を使用したくありませんでした。

「LIKE」でこれを行う方法が必要だと私は知っていました。

4

1 に答える 1

2

私の英語の先生は私を迷わせた。ダブルネガは便利です!

SELECT * FROM EQUIPMENT
   WHERE LTRIM(RTRIM(EQUIPMENT.MACADDRESS)) NOT LIKE '%[^0-9a-fA-F]%'
   AND LEN(LTRIM(RTRIM(EQUIPMENT.MACADDRESS)))=12
于 2012-09-24T16:09:26.250 に答える