Chúng ta có thể đặt dấu bằng (=) sau các hàm tổng hợp trong Transact-SQL không?


11

Tôi đã gặp một kịch bản như thế này:

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

Tôi không thể hiểu ý nghĩa của dấu bằng (=) sau tổng từ khóa thứ hai. Khi tôi chạy truy vấn, nó không hiển thị bất kỳ lỗi nào cả với dấu bằng và không có.

Tôi muốn biết mục đích của việc đặt một dấu bằng sau từ khóa sum. Đó có phải là một sai lầm hay không?

Cảm ơn

Câu trả lời:


19

Điều này được ghi lại trong CẬP NHẬT (Transact-SQL) :

SET @variable = cột = biểu thức đặt biến có cùng giá trị với cột. Điều này khác với SET @variable = cột, cột = biểu thức, đặt biến thành giá trị cập nhật trước của cột.

Trong ví dụ mã của bạn, sumlà tên (không khôn ngoan) của một cột, không phải là tổng hợp.

db <> fiddle demo

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.