如何解决简单的SQL CASE问题-从WHERE到CASE函数
很抱歉出现noob问题,这是SQL的新知识,不胜感激:)
我有这个SQL查询:
select * from nobel_win
where (subject = 'Physiology' and year < 1971)
and (subject = 'Peace' and year => 1974)
如果使用此查询,我将得到相同的结果吗? (我在这里正确使用了case函数吗?)如果不能,是否可以帮助我解决以下查询?
select *
(case when subject = 'Physiology' and year < 1971 end),(case when subject = 'Peace' and year => 1974 end),from nobel_win
* 编辑
原始查询实际上是这样的,我尝试通过执行WHERE(请参阅第一个代码块)来缩短UNION。有人可以纠正我的第一个代码块,使其显示相同的输出吗?谢谢一大堆:(
(select * from nobel_win
where subject = 'Physiology' and year < 1971)
UNION
(select * from nobel_win
where subject = 'Peace' and year => 1974)
解决方法
实际上,第一个版本或对其稍加修改可能就是您想要的:
render(){
return(
<div className = "App">
<form onSubmit = {this.handleSubmit}>
<h6>Add New Item</h6>
<input type = "text" value = {this.state.newItem} onChange ={this.handleChange}/>
<button type = "submit">Add to Shopping list</button>
</form>
<ul>
{this.state.shoppingCart.map(item =>(
<ShoppingItem item={item} key={item.id} />
)
)}
</ul>
</div>
);
}
}
export default ShoppingList;
请注意,由于两个记录都不可能属于一个以上的主题(或年份),因此我对这两个条件进行了OR运算。请注意,SELECT *
FROM nobel_win
WHERE
subject = 'Physiology' AND year < 1971 OR
subject = 'Peace' AND year >= 1974;
表达式不用于处理布尔逻辑,而是根据某些逻辑输出标量值。
如果您真的想这样做,可以这样做,例如:
SELECT *
FROM nobel_win
WHERE 1 =
CASE
WHEN subject = 'Physiology' AND year < 1971 THEN 1
WHEN subject = 'Peace' AND year >= 1974 THEN 1
ELSE 0
END
,
尝试以下查询
首次查询
<thead class="table table-bordered table-responsive">
<tr *ngFor="let ligne of grilleHaut">
<td *ngFor="let charac of ligne.tabDesCar" style="padding: 0px;">
<span *ngIf="charac!=''"> {{charac}}</span>
<span *ngIf="charac==''" style="background-color: black;width: 100%;height: 100%!important;display: table;">N/A</span>
</td>
</tr>
</thead>
</table>
第二个查询
其语法错误。在您的案例中,“ Then”语句缺失。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。