programing

테이블의 현재 값을 사용하여 문 업데이트

codeshow 2023. 10. 4. 23:03
반응형

테이블의 현재 값을 사용하여 문 업데이트

필드 중 하나의 정수 값을 1씩 증가시켜 테이블의 행을 업데이트합니다.

전류가 안 통하는데 왜요?

Update htmIndex SET numObs = numObs+1 where ...

간단한 경우, 한 행 업데이트:

SQL> select name
  2         , age
  3  from t23
  4  where id = 2
  5  /

NAME                AGE
------------ ----------
MR KNOX              47

SQL> update t23
  2  set age = age + 6
  3  where id = 2
  4  /

1 row updated.

SQL> select name
  2         , age
  3  from t23
  4  where id = 2
  5  /

NAME                AGE
------------ ----------
MR KNOX              53

SQL>

열에 null 값이 있으면 행을 업데이트합니다.

SQL> select name
  2         , age
  3  from t23
  4  where id = 6
  5  /

NAME                AGE
------------ ----------
SALLY

SQL> update t23
  2  set age=age+5
  3  where id = 6
  4  /

1 row updated.

SQL> select name
  2         , age
  3  from t23
  4  where id = 6
  5  /

NAME                AGE
------------ ----------
SALLY

SQL> update t23
  2  set age = nvl(age,0) +5
  3  where id = 6
  4  /

1 row updated.

SQL> select name
  2         , age
  3  from t23
  4  where id = 6
  5  /

NAME                AGE
------------ ----------
SALLY                 5

SQL>

여러 행을 업데이트할 때 동일하게 간단합니다.

 SQL> select name
   2         , age
   3  from t23
   4  where age > 20
   5  /

 NAME                AGE
 ------------ ----------
 MR KNOX              53
 FOX IN SOCKS         37
 CAT                  23
 LORAX               443

 SQL> update t23
   2  set age = age + 1
   3  where age > 20
   4  /

 4 rows updated.

 SQL> select name
   2         , age
   3  from t23
   4  where age > 20
   5  /

 NAME                AGE
 ------------ ----------
 MR KNOX              54
 FOX IN SOCKS         38
 CAT                  24
 LORAX               444

SQL>

그건 작동할 거야.그러나 현재 열 값이 null이면 +1이 null을 반환합니다.

시도:Update htmIndex SET numObs = nvl(numObs,0)+1 where ...

언급URL : https://stackoverflow.com/questions/3178743/update-statement-using-current-value-of-the-table

반응형