database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 5807 게시물 읽기
No. 5807
select한 값을 업데이트하는방법
작성자
정재원(haru0)
작성일
2010-12-07 16:57
조회수
6,620

 1.  SELECT * FROM dbo.AcaSmsMyAddress_test  WHERE GIDX = 0

 pid | gidx | name

 E0616001 0 dfdf
 E0243002 0 왕비마마
 E0243002 0 우리아들
 E0243002 0 우리공주
 E0302404 0 정지원
 E0302404 0 이지연
 E0200002 0 김광옥

2.  SELECT * FROM dbo.AcaSmsMyAddressGroup_test where GNAME = '기본그룹'
 

gidx ,  pid , gname

14428  E0616001 기본그룹
14429  E0243002 기본그룹
14430  E0243002 기본그룹
14431  E0302404 기본그룹
14432  E0420202 기본그룹

update dbo.AcaSmsMyAddress_test
       set gidx = (SELECT GIDX FROM dbo.AcaSmsMyAddressGroup_test where GNAME = '기본그룹')
where PID = (SELECT  PID FROM dbo.AcaSmsMyAddress_test  WHERE GIDX = 0)
 

AcaSmsMyAddress_test 안에 gidx 값이 0인 사람을 뽑아서 AcaSmsMyAddressGroup_test 안의 기본그룹이라는 gidx 값을 업데이트 할려면 어떻게해야하나요..ㅠ.ㅠ

데이터가 1000개가 넘는데 한번에 일괄적으로 하는 방법이 없나요?

 

 

이 글에 대한 댓글이 총 1건 있습니다.

먼저 dbo.AcaSmsMyAddress_test와 dbo.AcaSmsMyAddressGroup_test 매칭되는 키값이 필요한데,
여기서 볼때 pid가 키값으로 추정되므로 다음과 같이 하면 됩니다.

 

update dbo.AcaSmsMyAddress_test
   set gidx = b.gidx
  from dbo.AcaSmsMyAddress_test a
       join dbo.AcaSmsMyAddressGroup_test b on a.pid=b.pid
where a.gidx = 0
  and b.gname = '기본그룹'
 

 

 

 

이승철(yamyo)님이 2010-12-13 16:41에 작성한 댓글입니다.
이 댓글은 2010-12-13 16:41에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
5810'0.xxxxx....xxe' 형태의 문자로 되어 있는 것을 double 형태의 부동 소수점 변환?
새로운방법
2010-12-12
6498
5809특정 레코드만 수정이 안됩니다. [1]
최광훈
2010-12-11
6089
5808mssql에서 조인 후 최근 데이터 가져 오기
김경원
2010-12-09
6399
5807select한 값을 업데이트하는방법 [1]
정재원
2010-12-07
6620
5806이것좀 봐주세요..
진석
2010-12-04
6306
5805동일한 테이블을 두번 연결할수 있나요???? [1]
배우는이
2010-11-30
6459
5804odbc 시간 만료 에러
sql초보
2010-11-22
7501
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다