【发布时间】:2018-11-03 01:29:23
【问题描述】:
这个简单的例子显示了我遇到的问题,但我不明白为什么......
我正在测试传递给我的字符串参数中第一个字符的位置,该字符是小写或大写字母、单个破折号或句点。
这两个模式匹配似乎检查相同的东西,但你自己运行这段代码,它会打印一个 0 然后一个 3:
PRINT PATINDEX ( '%[a-z,A-Z,-,.]%', '16-82')
PRINT PATINDEX ( '%[-,a-z,A-Z,.]%', '16-82')
我不明白为什么它只有如果破折号是我们检查的第一个字符。
这是一个错误吗?或者按设计工作,但我错过了一些东西......我正在使用 SQL Server 2016,但我认为这并不重要。
【问题讨论】: