ProgramingTip

SQL Server 2008에서 열 값을 어떻게 바꾸나요?

bestdevel 2020. 12. 11. 19:12
반응형

SQL Server 2008에서 열 값을 어떻게 바꾸나요?


직원이라는 테이블이 있습니다.

 Eno     ename     AttributeValue      AttributeName  
 1       aa           a123             abc
 2       bbb          b123             dcf
 3       cc           c7sd             wew3

나는 열에서 데이터를 교환 할 AttributeValueAttributeNameAttributeNameAttributeValue

예를 들면 :

Eno     ename     AttributeValue   AttributeName  
1       aa        abc              a123
2       bbb       dcf              b123
3       cc        wew3             c7sd

UPDATE employee
SET AttributeValue = AttributeName, 
    AttributeName = AttributeValue

그러나 두 열의 정의가 정확히 일치 지라는 정보가 될 위험이 있습니다.


Update employee
Set attributeValue = attributeName,
    attributeName = attributeValue

update Employee set AttributeValue = AttributeName, AttributeName = AttributeValue


이것은 정말 좋은 예입니다

SELECT * from employees;
Go

DECLARE @temp as varchar(20)
update employees
set    @temp = fname,
       fname = lname,
       lname = @temp
WHERE  deptno = 10;
GO

SELECT * from employees;

결과


이전의 모든 기술은 열 이름을 바꾸는 대신 날짜를 이동하는 큰 테이블의 경우 속도가 느립니다. 이것은 간단한 솔루션입니다.

ALTER TABLE "amplitude"
RENAME COLUMN "start_hour_displayed" TO "temp";

ALTER TABLE "amplitude"
RENAME COLUMN "start_hour" TO "start_hour_displayed";

ALTER TABLE "amplitude"
RENAME COLUMN "temp" TO "start_hour";

기능 기능보기가있는 경우 이전에 백업하고 이후에 복원해야합니다.


Declare @myTable Table (id int, first_name varchar(50), last_name varchar(50));

Select * from Student

Insert Into @myTable (id, first_name, last_name) Select id, last_name, first_name from Student

    MERGE
    INTO    Student std
    USING @myTable tmp
    ON std.id = tmp.id
    WHEN MATCHED THEN
    UPDATE
    SET std.first_name = tmp.first_name,
    std.last_name = tmp.last_name;

Select * from Student

많이

쿼리 결과 스크린 샷


한 번의 업데이트로 두 열을 모두 바꾸십시오.

Update registration
Set AttributeName = AttributeValue ,
    AttributeValue = AttributeName where id in (1,2,3)

UPDATE employee SET AttributeValue = AttributeName, AttributeName = AttributeValue 하나의 임시 열을 작성하는 코드를 시도하는 것이 좋지 않습니다. UPDATE employee SET temp = AttributeName 그런 다음 다시 UPDATE employee SET AttributeName = AttributeValuee 다시

직원 SET AttributeValuee = 임시 업데이트

참고 URL : https://stackoverflow.com/questions/4198587/how-do-i-swap-column-values-in-sql-server-2008

반응형