-2

我的表MARKS中有两个列(DES1,DES2),我想从这两个列中找到MAXIMUM(对于两列中的每一行)标记并将最大标记输入到另一列(DES),如果这两列具有相同的数据,然后将相同的数据输入到 [MS ACCESS] 中的列 (DES)

表标记

DES1

34

23

30

DES2

22

40

30

4

3 回答 3

1

这是另一种方法:

UPDATE Marks
SET Des = (SELECT Max(v) FROM (VALUES (Des1), (Des2)) AS value(v))

如果您有一堆要比较的列,这可能会更清晰,否则我会使用 CASE 语句。这也适用于空值。

此外,这只适用于 >= SQL 2008

于 2012-06-14T13:52:09.973 回答
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
于 2012-06-14T13:30:28.937 回答
0

使用CASE声明:

UPDATE  Marks
SET     Des = CASE WHEN Des1 > Des2 OR Des2 IS NULL THEN Des1 ELSE Des2 END
于 2012-06-14T13:32:47.533 回答