I’m trying to find out the best practice when removing characters from the start of a string.
In some languages, you can use MID without a length parameter however, in TSQL the length is required.
Considering the following code, what is the best practise? (The hex string is variable length)
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)
Well, the first is more expressive of your intent. The last is clearly messy (hard-coded length etc). I doubt you’d find much performance difference between the first & second, so I’d use the simplest –
RIGHT.Of course, if you are doing this lots, you could write a udf that encapsulates this – then if you change your mind you only have one place to change…