В SQL Server мы можем ввести, IsNull()
чтобы определить, является ли поле нулевым. Есть ли в PL / SQL эквивалентная функция?
sql-server
oracle
tsql
plsql
Горан
источник
источник
COALESCE
это ANSI, поддерживается Postgres, MySQL ... Единственное предостережение в том, что он не обязательно работает так же быстро, как собственный синтаксис.COALESCE
, перед которым есть одно важное преимуществоNVL
: он выполняет сокращенную оценку, тогда какNVL
всегда оценивает оба параметра. СравнитеCOALESCE(1,my_expensive_function)
сNVL(1,my_expensive_function)
.COALESE()
отличная функция, и вы можете прочитать о ней в MSDOC> COALESCE - тот же синтаксис работает в Oracle. Если данные имеют пустые строки вместо NULLS вам может понадобиться что - то вроде этого:COALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField"
.Вместо
ISNULL()
использованияNVL()
.T-SQL:
PL / SQL:
источник
Также используйте,
NVL2
как показано ниже, если вы хотите вернуть другое значение изfield_to_check
:Использование: ORACLE / PLSQL: ФУНКЦИЯ NVL2
источник
Вы можете использовать это условие
if x is not null then...
. Это не функция. Также естьNVL()
функция, хороший пример использования здесь: функция NVL ref .источник