Update table1
set column1 = 'abc', column2 = 25
where column3 IN ('John','Kate','Tim')
Column3包含John两次(两个相关的行/记录),类似地 - 它有Kate第三次和Tim两次。 如何调整查询,以便更新仅影响John的第一行,Kate的第一行和Tim的第一行?
作为参考,这里是table1:
column1 column2 column3
aa 2 John (!)
affd 24 John
dfd 5 Tim (!)
ss 77 Kate (!)
s 4 Tim
s 1 Kate
sds 34 Kate
我只想更新标有(!)
的行我对Access女士特别感兴趣! - 但也很好奇如何在Sql Server中完成它以防它不同。谢谢!
答案 0 :(得分:4)
Sql Server解决方案 - 注意,您必须具有唯一的标识列才能使其工作(或一组唯一列)。
UPDATE table1
SET column1 = 'abc',
column2 = 25
WHERE id IN (SELECT id
FROM (SELECT id,
Row_number()
OVER (
ORDER BY rowyouwanttoorderby ) AS ROWNUM
FROM table1
WHERE column3 IN ( 'John', 'Kate', 'Tim' )) AS temp
WHERE rownum = 1)