在提交的答案中,有一个与TSQL编码挑战的链接与此相似。
在SQL2000解决方案中,作者演示了两种变体,一种使用并返回varchar,另一种使用varbinary。作者解释说他正在这样做,而没有解释为什么。
因此,我的问题是,方法上的主要区别/优势(如果有)是什么?即为什么使用varbinary而不是varchar?
我已经省略了发布代码的过程,因为上面的文章对代码进行了最优雅的总结。
我相信期望是,与原始字符串的每个部分相比,varbinary数据通常消耗的字节数(5个)要少于varchar个字节(我认为是10或11个),因此,对于大量组件或与之进行比较发生时,它应该更有效。
但我建议,如果您希望使用这两种解决方案,请同时实施这两种解决方案(它们都非常简短),并尝试对实际数据(和查询模式)进行剖析,以查看是否存在实际差异(我不会如此)。
(Crafty Steal):正如马丁指出的那样,二进制比较将更加有效,因为它不会涉及处理排序规则的所有代码。:-)