忽略负号 SQL 服务器
Ignoring negative number sign SQL SERVER
我正在寻找 return 彼此不同的金额。我正在处理这些数据:
Amount InvoiceNumber Amount2 InvoiceNumber2
1233.99 1 -1233.99 1
567.99 2 567.99 2
-3335.99 3 -3335.99 3
-3335.99 4 4000.99 4
现在,我正在寻找
这样的结果
Amount InvoiceNumber Amount2 InvoiceNumber2
-3335.99 4 4000.99 4
我想 return 通过忽略 - 符号但仍然在结果中保留 - 符号来获得彼此不同的值。例如。我想保留 1233 和 -1233,因为这可以反映信用等...
我实际处理的日期包含小数位,我不能使用 RIGHT 语法,因为数字的大小不同。我以为我可以使用左语法,但我需要跳过 - 符号。
谁能给我点建议?谢谢
sql fiddle - http://sqlfiddle.com/#!6/31ee0/7
尝试次数:
SELECT I.Amount, I.InvoiceNumber,
I2.Amount2, I2.InvoiceNumber2
FROM Invoice I
JOIN Invoice2 I2 ON I.InvoiceNumber = I2.InvoiceNumber2
WHERE RIGHT(I.Amount,3) <> RIGHT(I2.Amount2,3)
删除where
子句,你可以这样实现
SELECT I.Amount, I.InvoiceNumber,
I2.Amount2, I2.InvoiceNumber2
FROM Invoice I
JOIN Invoice2 I2 ON I.InvoiceNumber = I2.InvoiceNumber2
and I.Amount <> I2.Amount2
-- 如果你想忽略 -sign 使用 ABS
函数
SELECT I.Amount, I.InvoiceNumber,
I2.Amount2, I2.InvoiceNumber2
FROM Invoice I
JOIN Invoice2 I2 ON I.InvoiceNumber = I2.InvoiceNumber2
and abs(I.Amount) <> abs(I2.Amount2)
您可以在 SQL 服务器中使用 ABS
来跳过 - 符号。
SELECT I.Amount, I.InvoiceNumber,
I2.Amount2, I2.InvoiceNumber2
FROM Invoice I
JOIN Invoice2 I2 ON I.InvoiceNumber = I2.InvoiceNumber2
WHERE ABS(I.Amount) <> ABS(I2.Amount2)
希望对您有所帮助。
我正在寻找 return 彼此不同的金额。我正在处理这些数据:
Amount InvoiceNumber Amount2 InvoiceNumber2
1233.99 1 -1233.99 1
567.99 2 567.99 2
-3335.99 3 -3335.99 3
-3335.99 4 4000.99 4
现在,我正在寻找
这样的结果Amount InvoiceNumber Amount2 InvoiceNumber2
-3335.99 4 4000.99 4
我想 return 通过忽略 - 符号但仍然在结果中保留 - 符号来获得彼此不同的值。例如。我想保留 1233 和 -1233,因为这可以反映信用等...
我实际处理的日期包含小数位,我不能使用 RIGHT 语法,因为数字的大小不同。我以为我可以使用左语法,但我需要跳过 - 符号。
谁能给我点建议?谢谢
sql fiddle - http://sqlfiddle.com/#!6/31ee0/7
尝试次数:
SELECT I.Amount, I.InvoiceNumber,
I2.Amount2, I2.InvoiceNumber2
FROM Invoice I
JOIN Invoice2 I2 ON I.InvoiceNumber = I2.InvoiceNumber2
WHERE RIGHT(I.Amount,3) <> RIGHT(I2.Amount2,3)
删除where
子句,你可以这样实现
SELECT I.Amount, I.InvoiceNumber,
I2.Amount2, I2.InvoiceNumber2
FROM Invoice I
JOIN Invoice2 I2 ON I.InvoiceNumber = I2.InvoiceNumber2
and I.Amount <> I2.Amount2
-- 如果你想忽略 -sign 使用 ABS
函数
SELECT I.Amount, I.InvoiceNumber,
I2.Amount2, I2.InvoiceNumber2
FROM Invoice I
JOIN Invoice2 I2 ON I.InvoiceNumber = I2.InvoiceNumber2
and abs(I.Amount) <> abs(I2.Amount2)
您可以在 SQL 服务器中使用 ABS
来跳过 - 符号。
SELECT I.Amount, I.InvoiceNumber,
I2.Amount2, I2.InvoiceNumber2
FROM Invoice I
JOIN Invoice2 I2 ON I.InvoiceNumber = I2.InvoiceNumber2
WHERE ABS(I.Amount) <> ABS(I2.Amount2)
希望对您有所帮助。