当我使用合并查询插入时,我有 tableA 和 Key1 , datetime 列,我在源中得到了重复的行。 br />如何在datetime中将查询中的源归档为最大
MERGE tableA AS t
USING (VALUES
('datakeyA1', 'datetime value'),
('datakeyB1', 'datetime value'),
('datakeyA1', 'max datetime value')
) AS s (Key1, datetime)
ON s.Key1 = t.Key1
WHEN MATCHED THEN
UPDATE
SET Val = s.datetime
WHEN NOT MATCHED THEN
INSERT (Key1, datetime)
VALUES (s.Key1, s.datetime);
运行上面的查询时,我得到:
MERGE语句尝试更多地更新或删除同一行 不止一次。
有什么方法可以仅查询这些行(“ datakeyB1 ”,“ 日期时间 值”),(' datakeyA1 ”,“ 最大日期时间值”),而不使用中间表?
预期结果仅插入/更新 datakeyB1 , datakeyA1 值。如果两个数据中的日期相同,则仅获得一行。
MERGE tableA AS t
USING (VALUES
('datakeyB1', 'datetime value'),
('datakeyA1', 'max datetime value')
) AS s (Key1, datetime)
ON s.Key1 = t.Key1
WHEN MATCHED THEN
UPDATE
SET Val = s.datetime
WHEN NOT MATCHED THEN
INSERT (Key1, datetime)
VALUES (s.Key1, s.datetime);
答案 0 :(得分:1)
您可以使用def main():
n = int(input("Enter the number : "))
return factorial(n)
和values
用select语句包装top 1 with ties
子句-像这样:
order by row_number...