SQL Server를 사용하여 빈 공간을 null 값으로 변환하는 방법은 무엇입니까?
테이블이 있는데 이 테이블의 열에 일부 레코드를 위한 빈 공간이 있습니다.이제 데이터를 다른 테이블로 이동하고 빈 공간을 다음으로 대체해야 합니다.NULL
가치.
사용하려고 했습니다.
REPLACE(ltrim(rtrim(col1)),' ',NULL)
하지만 효과가 없습니다.모든 값을 변환합니다.col1
로.NULL
빈 공간이 있는 값만 다음으로 변환합니다.NULL
.
저는 비슷한 문제를 해결했습니다.NULLIF
함수:
UPDATE table
SET col1 = NULLIF(col1, '')
NULLIF는 두 식이 동일하지 않으면 첫 번째 식을 반환합니다.식이 같은 경우 NULLIF는 첫 번째 식 유형의 null 값을 반환합니다.
이거 먹어봤어요?
UPDATE table
SET col1 = NULL
WHERE col1 = ''
해설자들이 지적한 것처럼, 당신은 할 필요가 없습니다.ltrim()
또는rtrim()
,그리고.NULL
열이 일치하지 않음''
.
SQL Server는 문자열을 비교할 때 뒤에 오는 공백을 무시하므로 ' = ' '다음 쿼리를 사용하여 업데이트하십시오.
UPDATE table
SET col1 = NULL
WHERE col1 = ''
테이블의 NULL 값은 NULL로 유지되고 공백 문자만 있는 col1은 NULL로 변경됩니다.
한 테이블에서 다른 테이블로 복사하는 동안 이 작업을 수행하려면 다음을 사용합니다.
INSERT INTO newtable ( col1, othercolumn )
SELECT
NULLIF(col1, ''),
othercolumn
FROM table
이 코드는 데이터베이스의 모든 테이블과 열에서 이를 달성할 수 있는 몇 가지 SQL을 생성합니다.
SELECT
'UPDATE ['+T.TABLE_SCHEMA+'].[' + T.TABLE_NAME + '] SET [' + COLUMN_NAME + '] = NULL
WHERE [' + COLUMN_NAME + '] = '''''
FROM
INFORMATION_SCHEMA.columns C
INNER JOIN
INFORMATION_SCHEMA.TABLES T ON C.TABLE_NAME=T.TABLE_NAME AND C.TABLE_SCHEMA=T.TABLE_SCHEMA
WHERE
DATA_TYPE IN ('char','nchar','varchar','nvarchar')
AND C.IS_NULLABLE='YES'
AND T.TABLE_TYPE='BASE TABLE'
원본 테이블에서 선택할 때는 사례 설명을 사용해야 합니다.
CASE
WHEN col1 = ' ' THEN NULL
ELSE col1
END col1
또한 LTRIM 및 RTRIM은 공백(')에서 공백(')으로 값을 줄입니다.공백을 제거해야 하는 경우에는 사례 문장을 적절하게 수정해야 합니다.
CASE
WHEN LTRIM(RTRIM(col1)) = '' THEN NULL
ELSE LTRIM(RTRIM(col1))
END col1
이런 거?
UPDATE [MyTable]
SET [SomeField] = NULL
WHERE [SomeField] is not NULL
AND LEN(LTRIM(RTRIM([SomeField]))) = 0
여기 당신을 위한 정규식입니다.
update table
set col1=null
where col1 not like '%[a-z,0-9]%'
기본적으로 문자나 숫자가 들어 있지 않은 열을 찾아서 null로 설정합니다. 특수 문자만 포함된 열이 있는 경우 업데이트해야 할 수 있습니다.
언급URL : https://stackoverflow.com/questions/3701812/how-to-convert-empty-spaces-into-null-values-using-sql-server
'it-source' 카테고리의 다른 글
Oracle SQL에서 MERGE를 수행할 때 소스에서 일치하지 않는 행을 업데이트하려면 어떻게 해야 합니까? (0) | 2023.07.20 |
---|---|
python: 디렉터리를 두 단계 위로 가져옵니다. (0) | 2023.07.20 |
Oracle SQL의 'limit' 절 "SQL 명령이 제대로 종료되지 않음" (0) | 2023.07.20 |
파이썬에서 생성기 함수에서 한 번에 하나의 값을 얻는 방법은 무엇입니까? (0) | 2023.07.20 |
모바일 앱의 OAuth 비밀 (0) | 2023.07.15 |