Sql server SQL Server 2008中的If条件
首先,我对SQLServer2008中的Sql server SQL Server 2008中的If条件,sql-server,sql-server-2008,Sql Server,Sql Server 2008,首先,我对SQLServer2008中的IF条件一无所知 我有一个表[AccountHistory]w2列AccountType和Amount AccountType可以有不同的值(存款、取款、利润等),我需要一个查询来执行以下操作: If AccountType = Withdrawal Then Amount = Amount * -1 例如: AcountType Amount ----------------------------- Deposit
IF
条件一无所知
我有一个表[AccountHistory]
w2列AccountType
和Amount
AccountType
可以有不同的值(存款、取款、利润等
),我需要一个查询来执行以下操作:
If AccountType = Withdrawal Then Amount = Amount * -1
例如:
AcountType Amount
-----------------------------
Deposit 100
Withdrawal -150
Profit 220
Withdrawal -200
除了John Gibb提供的答案(原则上完全正确),我还要注意您的逻辑-是否存在阻止用户在系统上下文中输入负值的限制 如果不是,您可能会在不经意间将负数变为正数,并且随着数据收集的增长,会得到一些非常奇怪的结果。此外,此查询只能运行一次-一旦存在其他数据,再次执行它将使原始负值变为正值
update AccountHistory
set amount = amount * -1
where accounttype = 'Withdrawal'
and amount > 0;
听起来你可以直接用
更新语句来实现这一点为什么我得到-ve???!!你被否决是因为你表现出完全缺乏理解和/或努力。在询问有关堆栈溢出的帮助之前,您至少应该尽最小的努力来理解您的问题,因为这样的基本问题不会增加堆栈溢出的价值。有时生活就是这样残酷。我在ASP页面中遇到了错误:关键字“Update”附近的语法不正确,尽管它在查询构建中工作。查询工作正常,但我在ASP页面中使用此查询时出现上述错误,我不知道为什么…有其他选择吗?请仔细检查您的命令类型是否未使用存储过程。
update AccountHistory
set amount = amount * -1
where accounttype = 'Withdrawal'
and amount > 0;