เราสามารถใส่เครื่องหมายเท่ากับ (=) หลังจากฟังก์ชั่นรวมใน Transact-SQL ได้หรือไม่?


11

ฉันได้พบสคริปต์เช่นนี้:

set @sum = sum = (case when somecol1 is null then DATEDIFF(d,[somecol2],somecol3) else 0 end)

ฉันไม่เข้าใจความหมายของเครื่องหมายเท่ากับ (=) หลังจากรวมคำหลักที่สอง เมื่อฉันเรียกใช้แบบสอบถามจะไม่แสดงข้อผิดพลาดใด ๆ ทั้งที่มีเครื่องหมายเท่ากับและไม่มี

sumฉันต้องการที่จะทราบวัตถุประสงค์ของการวางเครื่องหมายเท่ากับหลังจากคำหลัก นั่นเป็นความผิดพลาดหรือไม่?

ขอบคุณ

คำตอบ:


19

นี่เป็นเอกสารในUPDATE (Transact-SQL) :

SET @variable = column = expression ตั้งค่าตัวแปรเป็นค่าเดียวกับคอลัมน์ สิ่งนี้แตกต่างจาก SET @variable = column, column = expression ซึ่งตั้งค่าตัวแปรเป็นค่า pre-update ของคอลัมน์

ในตัวอย่างรหัสของคุณsumคือชื่อ (ไม่ฉลาด) ของคอลัมน์ไม่ใช่การรวม

db <> การสาธิตซอ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.