我的表MARKS中有两个列(DES1,DES2),我想找到这两个列中的MAXIMUM(对于两列中的每一行)标记,并将最大标记输入到另一列(DES),如果两列具有相同的数据,然后将相同的数据输入[MS ACCESS]
中的列(DES)表MARKS
34
23
30
22
40
30
答案 0 :(得分:1)
这是另一种方法:
UPDATE Marks
SET Des = (SELECT Max(v) FROM (VALUES (Des1), (Des2)) AS value(v))
如果要比较一堆列,这可能会更清晰,否则我会使用CASE语句。这也适用于空值。
此外,这仅适用于> = SQL 2008
答案 1 :(得分:0)
这是我很快就在一起的事情,但尚未经过测试:
DECLARE @DES INT
SELECT @DES = (CASE WHEN MAX(DES1) = MAX(DES2) THEN MAX(DES1)
WHEN MAX(DES1) > MAX(DES2) THEN MAX(DES1)
ELSE MAX(DES2)
END)
FROM Marks
...use @DES for your insert
答案 2 :(得分:0)
使用CASE
声明:
UPDATE Marks
SET Des = CASE WHEN Des1 > Des2 OR Des2 IS NULL THEN Des1 ELSE Des2 END