2013-10-30 56 views
1

使用SQL我试图验证一个字段只包含大写字符,数字和可能包含' - '。
我试图删除具有小写字符或除' - '以外的任何符号的结果。SQL像函数大写字母有或没有破折号

到目前为止,我有

WHERE ItemCode LIKE UPPER(ItemCode) Collate SQL_Latin1_General_CP1_CS_AS 

然而这允许所有其他有趣的字符和符号。

感谢您的帮助。

+1

也许您可以在RDBMS中使用正则表达式进行此类过滤,但语法是rdbms特定的。 –

回答

1
WHERE ItemCode NOT LIKE '%[^-A-Z0-9]%' Collate Latin1_General_Bin 

应该这样做。

-A-Z0-9匹配-字符或项目的排列顺序范围A-Z,0-9^否定了该表达。

所以结合NOT LIKE可以找到那些不是数字,大写或-的字符的值。

+0

谢谢你的帮助。 – MikeR

相关问题