【问题标题】:where condition in case statement - SQL Servercase语句中的条件 - SQL Server
【发布时间】:2012-02-07 09:46:04
【问题描述】:

我需要显示基于交易类型(费用、贷款、存款等)的条件。 如果交易类型不等于“贷款”,则显示 where 条件(其中金额>1000)。 如果交易类型是“贷款”,则不需要 where 条件。 问题是对于交易类型“贷款”,金额为空。

这是我的查询..但我遇到了错误。帮助我在这里做错了什么。 此查询是更大的动态 SQL 的一部分。

@SQL=@SQL+' case when TransactionType=''Loan'' then ''null'' else  TotalAmount > ' + @amount + ' end '

【问题讨论】:

  • 您得到的确切错误信息是什么?

标签: sql-server-2005 stored-procedures dynamic-sql


【解决方案1】:

我认为您不需要案例陈述。

where TransactionType = 'Loan' or (TransactionType <> 'Loan' and TotalAmount > @amount)

根据给定的有限查询,也不确定您是否需要TransactionType &lt;&gt; 'Loan'

【讨论】:

  • 我认为我们需要案例陈述,因为对于贷款(transtype)金额为空。
  • 在上面的 where 子句中,它忽略了贷款金额,因此它是否为空无关紧要。
  • 是的,你是对的。我不需要案例陈述。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-08
  • 2021-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多