คำถามติดแท็ก case

5
คำสั่ง SQL Server CASE ประเมินเงื่อนไขทั้งหมดหรือออกจากเงื่อนไขแรกของ TRUE หรือไม่
คำสั่ง SQL Server (2008 หรือ 2012 โดยเฉพาะ) CASEประเมินWHENเงื่อนไขทั้งหมดหรือไม่หรือออกเมื่อพบWHENประโยคที่ประเมินว่าเป็นจริงหรือไม่? หากผ่านเงื่อนไขทั้งชุดนั่นหมายความว่าเงื่อนไขสุดท้ายที่ประเมินเป็นจริงจะเขียนทับเงื่อนไขแรกที่ประเมินว่าเป็นจริงหรือไม่ ตัวอย่างเช่น: SELECT CASE WHEN 1+1 = 2 THEN'YES' WHEN 1+1 = 3 THEN 'NO' WHEN 1+1 = 2 THEN 'NO' END ผลลัพธ์คือ "ใช่" แม้ว่าเงื่อนไขสุดท้ายควรประเมินเป็น "ไม่" ดูเหมือนว่ามันจะออกเมื่อพบเงื่อนไขที่แท้จริง ใครบางคนได้โปรดยืนยันถ้าเป็นกรณีนี้
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 _________________________________ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.