[SQL] SQL에서 여러 열을 업데이트
SQLSQL에서 여러 열을 업데이트
SQL 서버에 삽입 문이 사용하는 것과 동일한 방법으로 여러 열을 업데이트 할 수있는 방법이 있습니까?
뭔가 같은 :
Update table1 set (a,b,c,d,e,f,g,h,i,j,k)=
(t2.a,t2.b,t2.c,t2.d,t2.e,t2.f,t2.g,t2.h,t2.i,t2.j,t2.k)
from table2 t2
where table1.id=table2.id
오히려 지금과 같은보다 같은 또는 뭔가 :
update table set a=t2.a,b=t2.b etc
이는 당신이 100 + 열이있는 경우 쓰기 꽤 무심 할 수 있습니다.
해결법
-
==============================
1.은 "귀찮은 방법은"표준 SQL 어떻게 주류 RDBMS 그것을 할 것입니다.
은 "귀찮은 방법은"표준 SQL 어떻게 주류 RDBMS 그것을 할 것입니다.
100 개 이상의 열을 사용하면 대부분 가능성이 디자인 문제가 ... 또한, 완화 클라이언트 도구의 방법 (예를 들면 세대 UPDATE 문) 또는으로 ORMs을 사용하여이있다
-
==============================
2.이 시도:
이 시도:
UPDATE table1 SET a = t2.a, b = t2.b, ....... FROM table2 t2 WHERE table1.id = t2.id
즉 오라클을 제외한 대부분의 SQL 언어에서 작동합니다.
그리고 네 - 그것은 많은 타이핑입니다 - 그것은 SQL이이 작업을 수행하는 방식이다.
-
==============================
3.업데이트 설정 표 (A, B, C)은 = (일부는 X, Y, x)는 구문의 사용의 예는 행 값 생성자, 오라클이 지원, MSSQL하지 않습니다. (연결 항목)
업데이트 설정 표 (A, B, C)은 = (일부는 X, Y, x)는 구문의 사용의 예는 행 값 생성자, 오라클이 지원, MSSQL하지 않습니다. (연결 항목)
-
==============================
4.귀하의 질의는 거의 정확합니다. 이에 대한 T-SQL은 다음과 같습니다
귀하의 질의는 거의 정확합니다. 이에 대한 T-SQL은 다음과 같습니다
UPDATE Table1 SET Field1 = Table2.Field1, Field2 = Table2.Field2, other columns... FROM Table2 WHERE Table1.ID = Table2.ID
-
==============================
5.통사론
통사론
UPDATE table-name SET column-name = value, column-name = value, ... WHERE condition
예
UPDATE school SET course = 'mysqli', teacher = 'Tanzania', student = 'you' WHERE id = 6
-
==============================
6.
UPDATE t1 SET t1.a = t2.a, t1.b = t2.b, . . . FROM table1 t1 INNER JOIN table2 t2 ON t1.id=t2.id
이 시도 할 수 있습니다
-
==============================
7.나는이 방법과 그 작업 벌금 시도 :
나는이 방법과 그 작업 벌금 시도 :
UPDATE Emp SET ID = 123, Name = 'Peter' FROM Table_Name
-
==============================
8.여기서 일하는 하나입니다 :
여기서 일하는 하나입니다 :
UPDATE `table_1` INNER JOIN `table_2` SET col1= value, col2= val,col3= val,col4= val;
값 table_2에서 열인
-
==============================
9.이 여러 번 다시 입력해야하는 경우 한번 그랬던 것처럼, 당신은 할 수 있습니다. 오른쪽에있는 엑셀 시트 (++ 메모장에 쉽게 각 열 이름 (=)의 끝 부분에 적어)의 행으로 columns` 이름을 가져옵니다은 복사에서 새 항목에 해당됩니다 값을 붙여 열을 각 컬럼. 설계대로 그리고 독립적 인 열에서 그 오른쪽에 쉼표를 넣어
이 여러 번 다시 입력해야하는 경우 한번 그랬던 것처럼, 당신은 할 수 있습니다. 오른쪽에있는 엑셀 시트 (++ 메모장에 쉽게 각 열 이름 (=)의 끝 부분에 적어)의 행으로 columns` 이름을 가져옵니다은 복사에서 새 항목에 해당됩니다 값을 붙여 열을 각 컬럼. 설계대로 그리고 독립적 인 열에서 그 오른쪽에 쉼표를 넣어
그런 다음 중간 열에 때마다 당신의 값을 복사 만 한 후 붙여 넣기를 실행해야합니다
나는 쉬운 솔루션을 모른다
-
==============================
10.나는 이런 종류의 질문을 해결하는 방법을 당신과 함께 공유하고 싶습니다. 표 2의 결과는 동적이며, 열 번호는 이하 표 1에 비해 수있는 바와 같이 제 경우 약간 다르다. 그러나 개념은 동일합니다.
나는 이런 종류의 질문을 해결하는 방법을 당신과 함께 공유하고 싶습니다. 표 2의 결과는 동적이며, 열 번호는 이하 표 1에 비해 수있는 바와 같이 제 경우 약간 다르다. 그러나 개념은 동일합니다.
첫째, 표 2의 결과를 얻을.
다음, 그것을 피벗 해제.
그런 다음 동적 SQL을 사용하여 업데이트 쿼리를 작성합니다. 샘플 코드는이 개 간단한 테이블을 테스트하기 위해 작성된 것입니다 - TBLA 및 tblB
--CREATE TABLE tblA(id int, col1 VARCHAR(25), col2 VARCHAR(25), col3 VARCHAR(25), col4 VARCHAR(25)) --CREATE TABLE tblB(id int, col1 VARCHAR(25), col2 VARCHAR(25), col3 VARCHAR(25), col4 VARCHAR(25)) --INSERT INTO tblA(id, col1, col2, col3, col4) --VALUES(1,'A1','A2','A3','A4') --INSERT INTO tblB(id, col1, col2, col3, col4) --VALUES(1,'B1','B2','B3','B4') DECLARE @id VARCHAR(10) = 1, @TSQL NVARCHAR(MAX) DECLARE @tblPivot TABLE( colName VARCHAR(255), val VARCHAR(255) ) INSERT INTO @tblPivot SELECT colName, val FROM tblB UNPIVOT ( val FOR colName IN (col1, col2, col3, col4) ) unpiv WHERE id = @id SELECT @TSQL = COALESCE(@TSQL + ''' ,','') + colName + ' = ''' + val FROM @tblPivot SET @TSQL = N'UPDATE tblA SET ' + @TSQL + ''' WHERE id = ' + @id PRINT @TSQL --EXEC SP_EXECUTESQL @TSQL
모든 결과 @ PRINT :
-
==============================
11.내가 MySQL의에서 이런 짓을하고 당신이 당신의 서버로 MySQL을 사용하는 경우 그래서 이것을 시도, 단일 레코드에 여러 열을 업데이트 :
내가 MySQL의에서 이런 짓을하고 당신이 당신의 서버로 MySQL을 사용하는 경우 그래서 이것을 시도, 단일 레코드에 여러 열을 업데이트 :
"UPDATE creditor_tb SET credit_amount='" & CDbl(cur_amount) & "' , totalamount_to_pay='" & current_total & "', WHERE credit_id='" & lbcreditId.Text & "'".
그러나, 나는 MySQL 서버를 사용하여 vb.net 코딩, 그러나 당신이 당신의 서버로 MySQL을 사용하는 당신은 멀리로 좋아하는 프로그래밍 언어에 걸릴 수 있습니다.
-
==============================
12.
UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;
http://www.w3schools.com/sql/sql_update.asp
-
==============================
13.
update T1 set T1.COST2=T1.TOT_COST+2.000, T1.COST3=T1.TOT_COST+2.000, T1.COST4=T1.TOT_COST+2.000, T1.COST5=T1.TOT_COST+2.000, T1.COST6=T1.TOT_COST+2.000, T1.COST7=T1.TOT_COST+2.000, T1.COST8=T1.TOT_COST+2.000, T1.COST9=T1.TOT_COST+2.000, T1.COST10=T1.TOT_COST+2.000, T1.COST11=T1.TOT_COST+2.000, T1.COST12=T1.TOT_COST+2.000, T1.COST13=T1.TOT_COST+2.000 from DBRMAST T1 inner join DBRMAST t2 on t2.CODE=T1.CODE
from https://stackoverflow.com/questions/9079617/update-multiple-columns-in-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQLite는 :으로 선택? (0) | 2020.06.02 |
---|---|
[SQL] 나는 커밋 또는 읽기 트랜잭션을 롤백해야 하는가? (0) | 2020.06.02 |
[SQL] 교리와 원시 SQL을 사용하여 (0) | 2020.06.02 |
[SQL] 어떻게 엑셀 2005 개 데이터를 전송하거나 수출 SQL 서버 않습니다 (0) | 2020.06.02 |
[SQL] 하나 개의 테이블에서 어디하지 다른의 선택 (0) | 2020.06.02 |