, yapabileceğim ISNULL için PostgreSQL eşdeğer() Nedir: MS SQL-Server
SELECT ISNULL(Field,'Empty') from Table
Ama PostgreSQL içinde bir sözdizimi hatası alıyorum
.ISNULL()
işlevini nasıl taklit edebilirim?
, yapabileceğim ISNULL için PostgreSQL eşdeğer() Nedir: MS SQL-Server
SELECT ISNULL(Field,'Empty') from Table
Ama PostgreSQL içinde bir sözdizimi hatası alıyorum
.ISNULL()
işlevini nasıl taklit edebilirim?
SELECT CASE WHEN field IS NULL THEN 'Empty' ELSE field END AS field_alias
Ya da daha deyimsel:
SELECT coalesce(field, 'Empty') AS field_alias
+1. (S.S. Bunu MS SQL Server'da da yapabilirsiniz.) –
IS NULL kullanmak için başka durumlar da var, bu yüzden her ikisini de bilmek güzel. –
Sanırım, SQL standardında 'coalesce', '' neyin '' sadece iki parametreyle esas olarak 'birleştirilmesi' olan bir MS'ye özgü fonksiyon olmasıyla ilgili olduğunu düşünüyorum. – GSerg
şu fonksiyonu
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'
oluştur Ve çalışacağız.
Farklı parametre türleri ile farklı sürümler oluşturabilirsiniz. yerine
Lütfen, kimse bunu yapamaz. Bunun yerine coalesce() kullanın, böylece DBA’nız senden nefret etmiyor. – Jordan
Kullanım COALESCE()
: Daha fazla işlevsellik sağlar rağmen
SELECT COALESCE(Field,'Empty') from Table;
Bu ISNULL
gibi çok çalışır. Coalesce listedeki ilk boş olmayan değeri döndürür. Böylece:
SELECT COALESCE(null, 2, 5);
döner
2 Coalesce bağımsız değişken sayıda alacak iken
SELECT COALESCE(null, null, 5);
döner 5. Belgelenen maksimum yoktur. 100 argüman test ettim ve başarılı oldu. Bu durumların büyük çoğunluğu için bol olmalı.
ISNULL() işlevselliğini nasıl taklit edebilirim?
SELECT (Field IS NULL) FROM ...
Bu, tam olarak niçin çalıştığını tam olarak öykünür, neden azalıyor – smackshow
@artur Nasıl çalıştığını anlamıyorsunuz. – datashaman
Soru için en iyi cevap, elbette. Bu ifade, ISNULL() öğesinin tam karşılığıdır. COALESCE() çok akıllı ve bilmesi ilginç ancak kapalıyken ISNULL() gerçekleştiremiyor. – Skrol29
Dene:
SELECT COALESCE(NULLIF(field, ''), another_field) FROM table_name
olmalıdır. Bu, bir metin alanı NULL değil, aynı zamanda 'boş' durumun söz konusu olduğu durumu kapsamaz. – soulia
sen MSSQL bunu yapamam yok. Bu kod derlenmeyecek. 'ISNULL' iki argüman alır ve ikinciyi döndürür, ilk 'null', aksi halde ilktir. – GSerg
@GSerg, haklısınız. bunu düzeltdi. –
GSerg ve Byron evet dbo.Amonestacion dan testi olarak benim PC'den burada Örnek SEÇ IsNull (a.FechaEntregada, '') görebileceğiniz bir https://msdn.microsoft.com/en-us/ "coalesce" için kitaplık/ms184325.aspx – Juan