Tôi tìm thấy một vấn đề với các UPDATE
tuyên bố sau trong SQL SERVER tôimáy chủ sql CẬP NHẬT kết hợp với INNER JOIN với chính nó
UPDATE
table_a
SET
table_a.More = -1
FROM
table_a
INNER JOIN
(SELECT column1, COUNT(*) AS More
FROM table_a
GROUP BY column1) AS table_b
ON
table_a.column1 = table_b.column1
Lưu ý rằng INNER JOIN phần sử dụng bảng riêng của mình. Sau UPDATE
Tôi mong đợi một số hàng có More
tương đương với -1
. Nhưng tôi chỉ nhận được 1
s. Tôi chắc chắn rằngcó bản sao. Tôi đang thiếu gì?
Vấn đề tôi phát hiện ra là một số người đã xác định cột More
là loại bit
!
vui lòng cung cấp đầu vào mẫu của bạn –
Vâng, tôi đã tìm thấy sự cố. 'More' được định nghĩa là' bit' bởi một số S * @ #! # A @ # $ @ và lãng phí 3 trong số những giờ quý giá của tôi! –
Xin chào John, bạn có thể trả lời câu hỏi của riêng mình và cung cấp chi tiết về cách bạn giải quyết vấn đề này không, nó có thể giúp người khác bị mắc kẹt với vấn đề này. –