sql - 如何根据 SQL 中另一个字段的值将一个字段更改为负数

标签 sql

对于下面的语句,如果[Invoice_Type_Code] = 'c',我希望 amount 为负数,如果不是,则为正数。

SELECT [Invoice_Amount]
FROM [Forefront].[dbo].[VN_GL_DISTRIBUTION_HEADER_MC]
WHERE [Vendor_Code] ='  UnitedEL' and
[Date_List1]  > '2011-12-31' and
[Date_List1] < '2012-02-01' and
[Company_Code] = 'tmg' 

最佳答案

根据您的 RDBMS,使用 CASE 可能有效——大多数 RDBMS 应该支持它:

SELECT CASE WHEN  Invoice_Type_Code = 'C' THEN -1 ELSE 1 END * Invoice_Amount
FROM [Forefront].[dbo].[VN_GL_DISTRIBUTION_HEADER_MC]
where [Vendor_Code] ='  UnitedEL' and
[Date_List1]  > '2011-12-31' and [Date_List1] < '2012-02-01' and
[Company_Code] = 'tmg' 

这假设所有 Invoice_Amounts 均为正数。如果它们不是正值并且您仍然需要负值,请使用 ABS 函数并稍微更改您的 case 语句。

这是Fiddle .

祝你好运。

关于sql - 如何根据 SQL 中另一个字段的值将一个字段更改为负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14608777/

相关文章:

mysql - 下面的SQL查询为什么会出错?

sql - 与 null 的不同联合

php - 我需要计算计数项目的百分比

sql - 哪些索引有助于加快查询速度?

mysql - MySQL 数据类型中的内存分配?

sql - 将数值转换为Varchar

mysql - 如何从两个表中获取针对 ID (FK) 的多个图像

mysql - 我不断收到 SQL 错误 (1064) : right syntax to use near '10)' with ON DUPLICATE KEY UPDATE

SQL 创建枢轴函数

mysql函数语法未指定查询