当前位置:  开发笔记 > 数据库 > 正文

SQL SUBSTRING vs RIGHT - 最佳实践

如何解决《SQLSUBSTRINGvsRIGHT-最佳实践》经验,为你挑选了2个好方法。

我正在尝试从字符串的开头删除字符时找出最佳做法.

在某些语言中,您可以使用不带长度参数的MID,但是在TSQL中需要长度.

考虑以下代码,最佳做法是什么?(十六进制字符串是可变长度)

DECLARE @sHex VARCHAR(66)
SET @sHex = '0x7E260F3DA734AD4BD816B88F485CE501D843DF067C8EDCB8AC7DAD331852E04D'

PRINT RIGHT(@sHex,LEN(@sHex) -2)
PRINT SUBSTRING(@sHex,3,LEN(@sHex) -2)
PRINT SUBSTRING(@sHex,3,65535)

Marc Gravell.. 21

那么,第一个更能表达你的意图.最后一个显然是凌乱的(硬编码长度等).我怀疑你在第一和第二之间找到了很多性能差异,所以我会用最简单的 - RIGHT.

当然,如果你这么做,你可以写一个封装了这个的udf - 然后如果你改变主意,你只有一个地方可以改变......



1> Marc Gravell..:

那么,第一个更能表达你的意图.最后一个显然是凌乱的(硬编码长度等).我怀疑你在第一和第二之间找到了很多性能差异,所以我会用最简单的 - RIGHT.

当然,如果你这么做,你可以写一个封装了这个的udf - 然后如果你改变主意,你只有一个地方可以改变......



2> SQLMenace..:

在正确的功能上+1,你想要做的更清楚

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有