2

我正在使用 SQL Server 2008 R2。我有一个表,EQUIPMENT其中有一列MACADDRESS类型为nvarchar(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 回答