我需要将oracle模式的表计数与sql server数据库进行比较。但是,当我进行查询时,结果总是关闭的,这是因为每个查询都处理下划线(“u1”)的顺序。我在下面列举了一个例子。
在oracle中:
SELECT FIELD1 FROM ORACLE_ORDER ORDER BY FIELD1 ASC;
Result:
'ABC'
'ABCD'
'ABC_D'
在sql server中:
SELECT FIELD1 FROM SQL_ORDER ORDER BY FIELD1 ASC;
Result:
'ABC'
'ABC_D'
'ABCD'
从上面可以看出,oracle和sql server在排序时对下划线的处理方式都不同。如何修改其中一个查询(或环境)使其顺序与另一个相同?
2条答案
按热度按时间nfs0ujit1#
在SQLServer端使用以下命令
排序规则sql\u latin1\u general\u cp850\u bin使其与ascii值一起使用。在本例中,下划线的ascii值为95,a为65,z为90。请记住,小写字母“a”的值将高于大写字母“a”,以此类推。
这是小提琴
bnlyeluc2#
简单的方法是使用
Collate SQL_Latin1_General_CP850_BIN
中的函数ORDER BY
为了达到这个目的