SQL Like函数用于带或不带破折号的大写字母

时间:2013-10-30 13:45:18

标签: sql sql-server sql-like

使用SQL我正在尝试验证字段是否仅包含大写字符,数字并且可能包含“ - ”。
我正在尝试清除具有小写字符或除“ - ”之外的任何符号的结果。

到目前为止我已经

WHERE ItemCode LIKE UPPER(ItemCode) Collate SQL_Latin1_General_CP1_CS_AS

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

应该做的伎俩。

-A-Z0-9与排序顺序范围-A-Z中的0-9字符相匹配。 ^否定了该表达式。

因此,与NOT LIKE结合可以找到那些没有字符既不是数字也不是大写字母-的值。