반응형
SQL insert 문에서 비트 값을 반전하는 우아한 방법이 있습니까?
SQL Server에서 일부 데이터를 변환하는 중입니다.
INSERT INTO MYTABLE (AllowEdit)
(Select PreventEdit from SOURCETABLE)
소스 테이블의 비트 값을 반전시켜야 합니다.나는 예상했습니다.NOT
코드로 이렇게 하면 되는데 작동하지 않습니다.제가 생각할 수 있는 가장 우아한 방법은:
INSERT INTO MYTABLE (AllowEdit)
(Select ABS(PreventEdit -1) from SOURCETABLE)
더 표준적인 방법이 있습니까?
제가 직접 테스트한 것은 아니지만 비트적 부정 연산자를 사용할 수 있어야 합니다.~
잠시:
INSERT INTO MYTABLE (AllowEdit)
(SELECT ~PreventEdit FROM SourceTable)
SELECT ~PreventEdit FROM SourceTable
SELECT 1 ^ PreventEdit FROM SourceTable
SourceTable에서 실제로 비트가 아닌 경우 다음과 같습니다.
SELECT 1 - PreventEdit FROM SourceTable
편집: 테스트는 2s 보완이므로 비트 열에 사용하지 않을 경우 홀수 결과가 나올 수 있습니다.
DECLARE @bitvalue bit = 1, @intvalue int = 1;
SELECT ~@bitvalue, ~@intvalue
SELECT 1 ^ @bitvalue, 1 ^ @intvalue
SELECT 1 - @bitvalue, 1 - @intvalue
SELECT @bitvalue = 0, @intvalue = 0
SELECT ~@bitvalue, ~@intvalue
SELECT 1 ^ @bitvalue, 1 ^ @intvalue
SELECT 1 - @bitvalue, 1 - @intvalue
내 테이블에 삽입(편집 허용)(소스 테이블에서 ~ISNULL(편집 방지, 0) 선택)
언급URL : https://stackoverflow.com/questions/3324770/is-there-an-elegant-way-to-invert-a-bit-value-in-an-sql-insert-statement
반응형
'programing' 카테고리의 다른 글
화면 업데이트의 효과 (0) | 2023.06.19 |
---|---|
확인하지 못했습니다. com.google.파이어베이스:파이어베이스 코어:9.0.0 (0) | 2023.06.19 |
JDBC를 사용하여 dbms_output.get_lines에서 출력 가져오기 (0) | 2023.06.19 |
파이썬의 사전 목록에 값이 이미 있는지 확인하시겠습니까? (0) | 2023.06.19 |
두 날짜 사이의 근무일만 계산하는 방법은 무엇입니까? (0) | 2023.06.19 |