Questions tagged «case»

5
SQL Server CASE语句是否评估所有条件或在第一个TRUE条件下退出?
SQL Server(特别是2008或2012)CASE语句会评估所有WHEN条件,还是在找到WHEN评估结果为true 的子句后退出?如果确实要经历整个条件集,这是否意味着最后一个评估为true的条件会覆盖第一个评估为true的条件?例如: SELECT CASE WHEN 1+1 = 2 THEN'YES' WHEN 1+1 = 3 THEN 'NO' WHEN 1+1 = 2 THEN 'NO' END 即使最后一个条件将其评估为“否”,结果仍为“是”。似乎一旦找到第一个TRUE条件就退出。有人可以确认是否是这种情况。
44 sql-server  t-sql  case 

1
如何为包含负值和零值的列乘行?
我试图获取按查询分组的特定列的所有行的乘积。我发现的大多数示例都将我引向了exp,sum并且log exp(sum(log([Column A]))) 我遇到的问题是该列包含一些零值,因此当零传递给log函数时出现此错误: 发生无效的浮点运算。 我以为我可以通过使用case表达式来解决这个问题,但是那似乎并没有像我认为的那样起作用,因为它似乎可以评估所有情况。 select Name, Product = case when min([Value]) = 0 then 0 when min([Value]) <> 0 then exp(sum(log(I))) -- trying to get the product of all rows in this column end from ids group by Name SqlFiddle 给定以下结果集: Id Name Value _________________________________ 1 a 1 …

1
CASE语句中的空值
在学习70-461考试时,我正在玩SSMS中的一些东西,以学到更多知识,并且遇到了一些麻烦。我正在尝试创建一个表以供使用,因此我不必更改/删除AdventureWorks或TSQL2012数据库中任何已创建的表。在实际创建要使用的表之前,我已经创建了一个临时表来测试我的代码,这是我用来在表中插入值的代码: DECLARE @i INT = 1 WHILE @i < 10 BEGIN INSERT INTO #TestEmployeeCountry VALUES ( SUBSTRING('ABCDEFGHIJKLMNOP', @i, 1), CASE (SELECT ABS(CHECKSUM(NEWID()))%10 +1) WHEN 1 THEN 'USA' WHEN 2 THEN 'CANADA' WHEN 3 THEN 'MEXICO' WHEN 4 THEN 'UK' WHEN 5 THEN 'FRANCE' WHEN 6 THEN 'SPAIN' WHEN 7 THEN …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.