前一段时间,我询问了有关sql Server中层次结构/版本号排序的问题.
(
How Can I Sort A ‘Version Number’ Column Generically Using a SQL Server Query).
(
How Can I Sort A ‘Version Number’ Column Generically Using a SQL Server Query).
提交的答案是this link to a TSQL Coding challenge with much the same puzzle.
在sql2000解决方案中,作者展示了两个变体,一个使用和返回一个varchar和另一个varbinary.作者解释说,他正在这样做,而不解释为什么.
所以,我的问题是真的,主要的区别/优点(如果有的话)有什么区别呢?即为什么使用varbinary而不是varchar?
解决方法
@H_@R_301_450@_15@ 我相信预期的是,varbinary数据通常将消耗比原始字符串的每部分的varchar(10或11,我认为)更少的字节(5),因此,对于非常大量的组件或比较发生,应该更有效率.但是我建议,如果您正在寻求使用任一解决方案,那么您实现这两个解决方案(它们相当短),并尝试根据您的真实数据(和查询模式)进行一些分析,以查看是否存在实际差异(I不会期待如此).
(Crafty Steal):正如Martin指出的那样,二进制比较将更有效率,因为它不会涉及到处理归类的所有代码.