SQL은 한 열의 값을 동일한 테이블의 다른 열의 값과 동일하게 설정합니다.


96

두 개의 DATETIME 열이있는 테이블이 있습니다.

그들 중 하나는 NULL이 아니지만 그중 하나는 때때로 NULL입니다.

B 열의 모든 NULL 행을 A 열의 값과 동일하게 설정하는 쿼리를 작성해야합니다.

이 예제를 시도했지만 MySQL Workbench가 UPDATE의 FROM을 좋아하지 않기 때문에 선택한 답변의 SQL 실행되지 않습니다.

답변:


157

하나의 테이블에서 작업하는 것처럼 들리므로 다음과 같습니다.

update your_table
set B = A
where B is null

21
UPDATE YourTable
SET ColumnB=ColumnA
WHERE
ColumnB IS NULL 
AND ColumnA IS NOT NULL

21

나는 이렇게 할 것이다 :

UPDATE YourTable SET B = COALESCE(B, A);

COALESCE는 널이 아닌 첫 번째 인수를 리턴하는 함수입니다.

이 예에서 지정된 행의 B가 null이 아닌 경우 업데이트는 작동하지 않습니다.

B가 널이면 COALESCE는이를 건너 뛰고 대신 A를 사용합니다.


5

나는 다른 예가 당신이 찾고있는 것이라고 생각하지 않습니다. 같은 테이블의 다른 열에서 한 열을 업데이트하는 경우 이와 같은 것을 사용할 수 있어야합니다.

update some_table set null_column = not_null_column where null_column is null

1

다음은 A 열을 B 열로 처리하는 데 도움이 될 수있는 샘플 코드입니다.

UPDATE YourTable
SET ColumnB = ColumnA
WHERE
ColumnB IS NULL
AND ColumnA IS NOT NULL;

중재자 참고 사항 -게시물에 유효한 업데이트를 롤백하지 마십시오.
Bhargav Rao
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.