 |
conver from character to numeric - Jarryd |
09-May-08 04:59:43
|
I want to be able to do something (not going to get into it all to save
time).
The result I want is for the first operand and second operand variables to
affect each each other as determined by the operator variable. In this case
1 + 2 = 3
Can someone please explain to me why this works:
DECLARE @OPERAND1 AS INT, @OPERAND2 AS INT, @OPERATOR AS VARCHAR(1)
SET @OPERAND1 = 1
SET @OPERAND2 = 2
SET @OPERATOR = '+'
SELECT @OPERAND1 + @OPERATOR + @OPERAND2
RESILTS
-------
3
And this does not:
DECLARE @OPERAND1 AS VARCHAR(10), @OPERAND2 AS VARCHAR(10), @OPERATOR AS
VARCHAR(1)
SET @OPERAND1 = 1
SET @OPERAND2 = 2
SET @OPERATOR = '+'
SELECT @OPERAND1 + @OPERATOR + @OPERAND2
RESULTS
-------
1+2
DECLARE @OPERAND1 AS NUMERIC(9,2), @OPERAND2 AS NUMERIC(9,2), @OPERATOR AS
NVARCHAR(5)
SET @OPERAND1 = '10001.22'
SET @OPERAND2 = '20002.22'
SET @OPERATOR = '+'
SELECT @OPERAND1 + @OPERATOR + @OPERAND2
RESULTS
-------
Msg 8115, Level 16, State 6, Line 6
Arithmetic overflow error converting nvarchar to data type numeric.
The following website has a chart that suggests that NVARCHAR and NUMERIC
convert implicitly:
http://doc.ddart.net/mssql/sql70/ca-co_1.htm
I don't understand.
What does work, and this is genius amazing brilliant but I don't get it, is
the following:
DECLARE @OPERAND1 AS MONEY, @OPERAND2 AS MONEY, @OPERATOR AS NVARCHAR(5)
SET @OPERAND1 = '10001.2221'
SET @OPERAND2 = '20002.2242'
SET @OPERATOR = '+'
SELECT CONVERT(FLOAT, CONVERT(DECIMAL(18,4),@OPERAND1 + @OPERATOR +
@OPERAND2))
I am so confused.
TIA,
Jarryd |
 |
| |
| |
|
| |
|
conver from character to numeric - Jarryd |
09-May-08 05:09:10
|
Um, sorry everyone, I meant ot send this to the sqlserver.programming forum.
I have also realised that my @operator variable is not having any effect. I
was messing with the yesterday and I am SURE I got it to work somehow
without turning it into a string and then EXEC'uting it (EXEC @SQLSTRING).
Maybe I am going mad and losing track what I am doing...
Jarryd |
 |
| |
|
|
| Graph not refreshed (reporting services 2000) - urgent |