아래 나타나는 등의 세 번째 행이 있었다 (이것은 당신이 준 예를 들어, 데이터는) :
Fname Lname game hobby
asaf sh football computer
yaron ed none goldSmith
asaf sh football computer <--- This is the row you want to update
다음 UPDATE 문을 실행하여 표시된 행을 변경할 수 있습니다. 이 최고로 아니라 "세 번째 행"바라 보았다되지만 FNAME 현재 'asaf'인 행으로, LNAME은 '쉬', 게임은 '축구'입니다이며 취미는 '컴퓨터'
with sub as(
select p.*, row_number() over (partition by fname, lname, game, hobby
order by fname, lname, game, hobby) as rn
from persons p)
update sub
set fname = 'new_fname', lname = 'new_lname', game = 'new_game'
where rn = 1
and fname = 'asaf'
and lname = 'sh'
and game = 'football'
and hobby = 'computer';
입니다 바이올린 예 : http://sqlfiddle.com/#!6/83fb0/1/0
위 타겟팅하는 값을 갖는 2 행 중 하나를 업데이트합니다. 테이블의 행에 대해서는 "순서"와 같은 것이 없다는 것을 명심하십시오. 또한 기본 키를 추가하여 나중에 row_number()에 의존하지 않고 특정 행을 고유하게 업데이트 할 수 있도록해야합니다.
업데이트 할 테이블의 이름은 무엇입니까? 단어 "업데이트"바로 뒤에 있어야합니다. 테이블에 기본 키가 있습니까? 그렇다면 어떤 열 (들)에? –
귀하의 바로 기다려야 할 것입니다 업데이 트를 할 것입니다 기본 주요 원인은 2 개의 동일한 유사한 행 수 있습니다 –
예제 데이터를 제공 할 수 있습니까? PK없는 경우 특정 행을 업데이트 할 수 있는지 여부는 중복 행이 있는지 여부에 따라 다르며, 업데이트하려는 행과 동일한 테이블에 행이있는 경우 row_number () 테이블 위로 –