Someone had code like this on the tek-tips forum
DECLARE @v varchar(24)
SELECT @v ='06029202400250029'
SELECT RIGHT(@v,4) -SUBSTRING(@v,10,4)
If you run this code, you will get the following message
Server: Msg 403, Level 16, State 1, Line 4
Invalid operator for data type. Operator equals subtract, type equals varchar.
Instead of casting to integers you can also use this little trick. You basically multiply one of the values by 1
DECLARE @v varchar(24)
SELECT @v ='06029202400250029'
SELECT RIGHT(@v,4) *1 -SUBSTRING(@v,10,4)
Another example. This doesn't work
SELECT '2' - '1'
This does work
SELECT '2' * 1 - '1'
Wednesday, January 2, 2008
Use the *1 trick to do math with two varchars, this prevents the Invalid operator for data type. Operator equals subtract,type equals varchar message
Posted by Denis at 4:26 PM
Labels: SQL Server 2000, SQL Server 2005, SQL Server 2008, Tip, Tips and Tricks
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment