我正在尝试找出从字符串开头删除字符时的最佳实践。
在某些语言中,您可以使用不带长度参数的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)发布于 2009-02-02 15:24:56
好吧,第一个更能表达你的意图。最后一个显然是乱七八糟的(硬编码长度等)。我怀疑你会发现第一个和第二个之间有多大的性能差异,所以我会使用最简单的- RIGHT。
当然,如果你做了很多这样的事情,你可以编写一个udf来封装它--如果你改变了主意,那么你只有一个地方可以改变……
发布于 2009-02-02 15:37:50
+1在右边的函数上,你想要做什么就更清楚了
发布于 2009-02-02 15:27:32
我会使用right函数,因为它能更好地显示您的意图。substring函数最适合用于从较长字符串的中间提取字符串。
https://stackoverflow.com/questions/503573
复制相似问题