我明白了:
因此,我希望以下测试能够产生'这是有道理的!'
IF '9' < ':' select 'This makes sense!' as OUTCOME
ELSE select 'Makes no sense to me!' as OUTCOME
唉,事实并非如此。
现在Ascii标尺的进一步向上是字母A(ascii-65)到Z(ascii-90)等。如果我运行以下逻辑测试:
IF '9' < 'A' select 'This makes sense!' as OUTCOME
ELSE select 'Makes no sense to me!' as OUTCOME
然后恢复理智。
显然必须有一些SQL设置来控制这种行为,但是在花了一些时间在互联网上搜索这种行为的解释后,我还没有找到任何。
答案 0 :(得分:1)
你已经得到了你没有利用它的答案。
IF ASCII('9') < ASCII(';')
如果没有它,你只是比较字符串,顺序是由数据库的整理决定的,当然不是ASCII,而是在大多数情况下字典的排序方式更多。
此链接显示基于排序规则https://msdn.microsoft.com/en-us/library/ms144250(v=sql.105).aspx
的不同排序机制如果你坚持按照ASCII排序,那么上面的代码就可以了。