[SQL] 선택 문 내에서 NULL과 빈 문자열을 교체
SQL선택 문 내에서 NULL과 빈 문자열을 교체
나도 NULL 또는 빈 공간을 가질 수 있습니다 열 (즉, '') 값이 있습니다. 나는 '알 수 없음'와 같은 유효한 값으로이 값을 모두 교체하고 싶습니다. 내가 찾은 다양한 솔루션은 테이블 자체 내에서 값을 수정하는 것이 좋습니다. 그러나, 이것은 (내 애마가 더 나은 일을 할 수 있었다 생각 현실에서) 데이터베이스가 매우 저조한 개발 및 / 또는 패치 타사 응용 프로그램에 대한 것을이 경우 옵션을 선택하지 않습니다. 나는 기본 데이터를 수정하는 응용 프로그램이 흡연 구멍에 녹아 원인이 될 수 있다고 우려하고있다.
나는 다음과 같은 명령의 변화를 시도했다 :
COALESCE(Address.COUNTRY, 'United States') -- Won't replace empty string as it is not NULL
REPLACE(Address.COUNTRY, '', 'United States') -- Doesn't replace empty string
ISNULL(Address.COUNTRY, 'United States') -- Works for NULL but not empty string
본인은 CASE 문을 사용할 수 있습니다 알고 있지만 훨씬 더 우아한 / 효율적인 솔루션이 기대하고있다.
나는 내 특정 문제에 대한 해결책을 찾았다하고 답을 발견하지 않았습니다 말할 때 당신은 저를 신뢰해야합니다. 내가 뭔가를 간과 한 경우, 그래도 친절하게 나에게 광경을 보여줍니다.
해결법
-
==============================
1.이 시도
이 시도
COALESCE(NULLIF(Address.COUNTRY,''), 'United States')
-
==============================
2.당신 같은 소리 대신 실제 테이블 데이터를 변경의보기를 원한다.
당신 같은 소리 대신 실제 테이블 데이터를 변경의보기를 원한다.
Coalesce(NullIf(rtrim(Address.Country),''),'United States')
이것은 실제로 빈 문자열 (또는 빈 문자열) 후 유착이와 작업에 널 (null)이됩니다 경우는 null로 당신의 열을 강제 할 것이다.
-
==============================
3.다른 방법이 될 수 있습니다 : - 하나의 표현을 사용 권장 -
다른 방법이 될 수 있습니다 : - 하나의 표현을 사용 권장 -
case when address.country <> '' then address.country else 'United States' end as country
-
==============================
4.등의 조합과 같은 테이블에있는 예제 데이터를 들면
등의 조합과 같은 테이블에있는 예제 데이터를 들면
''당신은 실제 값에 원하는에 대체 것보다 널 (null)과뿐만 아니라 실제 값 '이 쿼리를 실행보다 # 기호로'와 널 (null) 값
SELECT Column_Name = (CASE WHEN (Column_Name IS NULL OR Column_Name = '') THEN '#' ELSE Column_Name END) FROM Table_Name
또 다른 방법은 당신이 그것을 사용할 수 있지만이 조금 긴이며, 대신 당신은 또한 ISNULL 기능 그러나 여기에만 내가 IIF 기능을 언급하고 사용할 수 있습니다
SELECT IIF(Column_Name IS NULL, '#', Column_Name) FROM Table_Name SELECT IIF(Column_Name = '', '#', Column_Name) FROM Table_Name -- and syntax of this query SELECT IIF(Column_Name IS NULL, 'True Value', 'False Value') FROM Table_Name
from https://stackoverflow.com/questions/17244808/replacing-null-and-empty-string-within-select-statement by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] CommandType.StoredProcedure 대 CommandType.Text (0) | 2020.06.10 |
---|---|
[SQL] 왜 SQL NULL에서 NULL과 일치하지 않을 수 있습니까? (0) | 2020.06.10 |
[SQL] 어떻게 Access에서 하위 쿼리와 업데이트 쿼리를 수행합니까? (0) | 2020.06.10 |
[SQL] SQLite는 쿼리, 'LIKE' (0) | 2020.06.10 |
[SQL] MSSQL 정규 표현식 (0) | 2020.06.10 |