2013-01-21 2 views
3

다음 SELECT 문이 있습니다.SQL 테이블의 특정 행을 업데이트하십시오.

SELECT  AETID, DSRID, FYEID, BASICRATE, EURORATE, 
    COMID, BRAID, CURID, CURIDCONV, ENTRYDATE, EVNUMBER, 
    ORIGIN, IEEID, RELDOCNUM, GJOID, JOURNALNUM, 
    JUSTIFICATION, KEPYOAMOUNT, KEPYONUM, STATUS, 
    UPDSTATUS, TOTALCB, IDLINKED, CREUSERID, CREUSERDATE, 
    UPDUSERID, UPDUSERDATE, ACEIDCROSSENTRY, ACEIDCROSSEDENTRY, 
    ISCROSS, ISCROSSED, ACEIDCANCEL, ACEIDPRIMARY, CCEID 
FROM   EliteUser.ACE 
WHERE  (JOURNALNUM > 1193) 
    AND (JOURNALNUM < 2387) 

내가하고 싶은 것은 그래서 어디 journalnum = 1194 업데이트 1 특정 행을 업데이트입니다 2-journalnum = 1195 업데이트 등

+0

RDBMS는 무엇입니까 ?? –

+0

MS SQL Server 2005 – splogo

답변

2
UPDATE EliteUser.ACE 
SET journalnum = journalnum - 1193 
WHERE JOURNALNUM > 1194 
    AND JOURNALNUM < 2387; 

또는 :

UPDATE e 
SET e.JOURNALNUM = t.rownum 
FROM EliteUser.ACE e 
INNER JOIN 
(
    SELECT JOURNALNUM, ROW_NUMBER() OVER(ORDER BY JOURNALNUM ASC) rownum 
    FROM EliteUser.ACE 
    WHERE JOURNALNUM > 1194 
    AND JOURNALNUM < 2387 
) t ON e.JOURNALNUM = t.JOURNALNUM 
+0

고맙습니다. .. – splogo

5

들어가야 할 새로운 가치가있는 열은 무엇입니까? JournalNum 열을 업데이트하여 1에서 시작하도록한다고 가정합니다.

UPDATE 
    EliteUser.ACE 
SET 
    JournalNum = JournalNum - 1193 
WHERE 
    JournalNum > 1193 
AND JournalNum < 2387 
관련 문제