sql-server – SQL Server CASE语句是否评估所有条件或在第一个T
发布时间:2021-05-16 08:16:09 所属栏目:MsSql教程 来源:网络整理
导读:SQL Server(2008或2012,特别是)CASE语句是否评估了所有WHEN条件,或者一旦找到评估为true的WHEN子句就退出?如果它确实经历了整个条件集,那是否意味着评估为true的最后一个条件会覆盖评估为true的第一个条件?例如: SELECT CASE WHEN 1+1 = 2 THEN'YES' WH
SQL Server(2008或2012,特别是)CASE语句是否评估了所有WHEN条件,或者一旦找到评估为true的WHEN子句就退出?如果它确实经历了整个条件集,那是否意味着评估为true的最后一个条件会覆盖评估为true的第一个条件?例如: SELECT CASE WHEN 1+1 = 2 THEN'YES' WHEN 1+1 = 3 THEN 'NO' WHEN 1+1 = 2 THEN 'NO' END 结果为“是”,即使最后一个条件应该使其评估为“否”.它似乎一旦找到第一个TRUE条件就会退出.有人可以确认是否是这种情况. 解决方法?返回计算结果为TRUE的第一个input_expression = when_expression的result_expression.参考 这是标准的SQL行为: > CASE表达式求值为第一个真实条件.>如果没有真实条件,则评估为ELSE部分.>如果没有真实条件且没有ELSE部分,则计算结果为NULL. (编辑:安康站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 使SqlClient默认为ARITHABORT ON
- sql-server – 将SQL Server实例根目录放在单独的驱动器上是
- sql-server-2005 – 用户定义的函数输出进行Nhibernate过滤
- sql-server – SQL Server CASE语句是否评估所有条件或在第
- sql实现跨数据库数据同步的方法是什么?
- entity-framework-4 – 如何使用SQL Compact 4首先使用Enti
- sql-server-2008-r2 – 使用sp_启动用户存储过程的名称仍然
- sql实现跨库访问的办法是什么?
- join – Spark 2.0.0错误:PartitioningCollection要求其所
- sql-server – SQL Server 2008 / 2008R2备份兼容性