我在SQL SERVER中发现以下UPDATE
语句存在问题
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
请注意,内部联接部分使用表本身。 在此UPDATE
之后,我预计有些行More
等于-1
.但我只得到了1
。我 100% 确定column1
有重复项。我错过了什么?
我发现的问题是有人将列More
定义为bit
类型!
我这里的问题是数据类型,在位类型中,您只能有 1 或 0 或 NULL。将数据类型更改为 int