[sql-server] ISNULL ()에 해당하는 PostgreSQL은 무엇입니까
MS SQL-Server에서 다음을 수행 할 수 있습니다.
SELECT ISNULL(Field,'Empty') from Table
그러나 PostgreSQL에서 구문 오류가 발생합니다. 기능을 어떻게 에뮬레이트 ISNULL()
합니까?
답변
SELECT CASE WHEN field IS NULL THEN 'Empty' ELSE field END AS field_alias
또는 더 관용적 인 :
SELECT coalesce(field, 'Empty') AS field_alias
답변
COALESCE()
대신 사용하십시오 :
SELECT COALESCE(Field,'Empty') from Table;
ISNULL
더 많은 기능을 제공하지만 기능은 매우 비슷 합니다. Coalesce는 목록에서 첫 번째 null이 아닌 값을 반환합니다. 그러므로:
SELECT COALESCE(null, null, 5);
5를 반환하는 동안
SELECT COALESCE(null, 2, 5);
2를 반환
Coalesce는 많은 수의 논쟁을 취할 것입니다. 문서화 된 최대 값은 없습니다. 나는 그것을 100 개의 주장으로 시험했고 성공했다. 이것은 대부분의 상황에서 충분해야합니다.
답변
ISNULL () 기능을 어떻게 에뮬레이트합니까?
SELECT (Field IS NULL) FROM ...
답변
시험:
SELECT COALESCE(NULLIF(field, ''), another_field) FROM table_name
답변
다음 함수를 만듭니다
CREATE OR REPLACE FUNCTION isnull(text, text) RETURNS text AS 'SELECT (CASE (SELECT $1 "
"is null) WHEN true THEN $2 ELSE $1 END) AS RESULT' LANGUAGE 'sql'
그리고 작동합니다.
다른 매개 변수 유형으로 다른 버전을 작성할 수 있습니다.