SQL SUBSTRING vs RIGHT - Best Practice
Solution 1
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...
Solution 2
+1 on the right function, it is much clearer what you want to do
Solution 3
I would use the right
function as it better shows your intent. The substring
function is best used for extracting strings from the middle of a longer string.
Solution 4
I use the second SUBSTRING because it is more portable. Not all dbms had LEFT and RIGHT.
![John](https://i.stack.imgur.com/gB1yl.png?s=256&g=1)
Comments
-
John almost 2 years
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)