ISNULL (), NVL (), IFNULL () 또는 COALESCE ()와 동등한 SQLite
내 코드에서 다음과 같은 많은 검사를 피하고 싶습니다.
myObj.someStringField = rdr.IsDBNull(someOrdinal)
? string.Empty
: rdr.GetString(someOrdinal);
다음과 같은 작업을 수행하여 내 쿼리가 null을 처리하도록 할 수 있다고 생각했습니다.
SELECT myField1, [isnull](myField1, '')
FROM myTable1
WHERE myField1 = someCondition
나는 SQLite를 사용하고 있으며 isnull
기능 을 인식하지 못하는 것 같습니다 . 나는 또한 다른 데이터베이스 ( NVL()
, IFNULL()
및 COALESCE()
) 에서 인식되는 일부 동등한 것들을 시도 했지만 SQLite는 이들 중 어느 것도 인식하지 못하는 것 같습니다.
누구든지 제안이 있거나 더 나은 방법을 알고 있습니까? 불행히도 데이터베이스에는 모든 필드에 대한 기본값이 없습니다. 또한 테이블에 LEFT JOIN
일치하는 레코드가 LEFT JOIN
존재하지 않기 때문에 반환 된 필드 중 일부가 null이되는 경우에 일부 절 을 사용해야 합니다.
IFNULL
, 여기를 참조하십시오 : http://www.sqlite.org/lang_corefunc.html#ifnull
함수 주위에 대괄호 없음
이 시도
ifnull(X,Y)
예 :
select ifnull(InfoDetail,'') InfoDetail; -- this will replace null with ''
select ifnull(NULL,'THIS IS NULL');-- More clearly....
ifnull()
기능을 모두 인수가 NULL 경우 첫 번째 NULL이 아닌 인수, 또는 NULL의 카피를 돌려줍니다. Ifnull()
정확히 2 개의 인수가 있어야합니다. 이 ifnull()
함수는 coalesce()
두 개의 인수와 동일합니다 .
ISNULL()
메서드 가 없으면 대신 다음 식을 사용할 수 있습니다.
CASE WHEN fieldname IS NULL THEN 0 ELSE fieldname END
이것은 ISNULL(fieldname, 0)
.
ISNULL () 메서드 대신 WHERE 절에서 IS NULL
또는 사용 IS NOT NULL
:
SELECT myField1
FROM myTable1
WHERE myField1 IS NOT NULL
NVL () 및 ISNULL ()에 해당하는 경우 다음을 사용하십시오.
IFNULL(column, altValue)
column
: 평가중인 열입니다.
altValue
: 'column'이 null 인 경우 반환 할 값입니다.
예:
SELECT IFNULL(middle_name, 'N/A') FROM person;
* 참고 : COALESCE () 함수는 다른 데이터베이스에서와 동일하게 작동합니다.
출처 :
- COALESCE () 함수 (w3schools)
- SQLite가 이해 한 SQL (SQLite 웹 사이트)
이러한 기능을 쉽게 정의하고 사용할 수 있습니다.
ifnull <- function(x,y) {
if(is.na(x)==TRUE)
return (y)
else
return (x);
}
또는 동일한 축소 버전 :
ifnull <- function(x,y) {if(is.na(x)==TRUE) return (y) else return (x);}
참고 URL : https://stackoverflow.com/questions/799375/sqlite-equivalent-to-isnull-nvl-ifnull-or-coalesce
'program tip' 카테고리의 다른 글
Spring Boot에서 암시 적으로 사용되는 Jackson JSON 매퍼를 사용자 정의하는 방법은 무엇입니까? (0) | 2020.09.16 |
---|---|
Java에서 Enum을 싱글 톤으로 사용하는 가장 좋은 방법은 무엇입니까? (0) | 2020.09.16 |
WordPress 데이터베이스에서 마지막으로 삽입 된 행 ID를 얻는 방법은 무엇입니까? (0) | 2020.09.16 |
내 웹 사이트에 Facebook 공유 버튼을 추가하는 방법은 무엇입니까? (0) | 2020.09.15 |
Python vs Bash-어떤 종류의 작업에서 각각 성능면에서 다른 작업을 능가합니까? (0) | 2020.09.15 |