|
<< İçindekileri Görüntülemek İçin Tıklayın >> Yer: Teknik Kılavuzlar > IVEDI SQL Kullanıcı Kılavuzu > 5. Operatörler ve yerleşik fonksiyonlar > 5.7 Dönüşüm ve NULL fonksiyonları |
| İmza | Notlar |
|---|---|
CAST(<ifade> AS <tip>) | Bkz. 4.3. |
COALESCE(v1, …) | Gecikmeli değerlendirir; sonuç tipi birinci argümanın tipi. |
NULLIF(a, b) | 13 tip; gecikmeli değerlendirir. |
IIF(<koşul>, <doğruysa>, <değilse>) | Gecikmeli değerlendirir; sonuç tipi ikinci argümanın tipi. |
DECODE(a, b, c, …) | Oracle biçimi; gecikmeli değerlendirir, sonuç tipi üçüncü argümanın tipi. |
CASE … | Hem basit hem aranan biçim; ifade ve deyim olarak. |
TRY_CAST yoktur: ne anahtar sözcüğü ne uygulaması vardır.
CREATE CAST de yoktur.
Bir JSON belgesi değerlerden JSON_ARRAY ve JSON_OBJECT ile kurulur;
küme eşleri JSON_ARRAYAGG ve JSON_OBJECTAGG kümeleme fonksiyonlarındadır.
Çağrı konumsaldır: standardın KEY … VALUE … yazımı yerine PostgreSQL, MySQL ve SQLite'ın
json_build_object/json_build_array biçimi kullanılır. Belgeyi okuyan
JSON_VALUE, JSON_QUERY ve JSON_EXISTS için bkz. 3.6.
| İmza | Notlar |
|---|---|
JSON_ARRAY([v1, …]) | Sonuç json. NULL argüman diziye girmez (ABSENT ON NULL). |
JSON_OBJECT([k1, v1, …]) | Sonuç json. NULL değer null olarak yazılır (NULL ON NULL); anahtar NULL olamaz,
argüman sayısı çift olmalıdır. Sonuç kanoniktir: anahtarlar sıralanır, yinelenen anahtarın sonuncusu kalır. |
Bildirilen tipi json olan bir argüman tırnaklanmaz, belge olarak gömülür; iç içe belge
böyle kurulur. JSON gibi görünen bir metin ise dizgedir ve tırnaklanır.
select json_array(1, 'x', true); --> [1,"x",true]
select json_array(1, null, 2); --> [1,2]
select json_object('a', 1, 'b', null, 'c', 'x'); --> {"a":1,"b":null,"c":"x"}
select json_object('a', json_array(1, 2), 'b', json_object('c', 3));
--> {"a":[1,2],"b":{"c":3}}
select json_array('[1,2]'); --> ["[1,2]"]Ürün kodu (özellikle tetikleyiciler) motorun yarı yükseltilmiş bir veritabanında koştuğunu bu fonksiyonlardan öğrenir (yükseltme için bkz. 6.9):
| İmza | Notlar |
|---|---|
IS_UPGRADING() | boolean: bir katalog yükseltmesi sürüyor mu. |
IS_INSTALLING_LEVEL([seviye]) | boolean: parametresiz herhangi bir seviye, parametreli o seviye kuruluyor mu. |
IVD_DATABASE_STATE(kart guid) | Kimlik kartı bu GUID'i taşıyan bağlı veritabanının canlı durumu (string); bağlı değilse NULL. |
IVD_UPGRADE_REASON(kart guid) | Yükseltme gerekçesi (string); gerekmiyorsa NULL. |
create trigger ayar_ai for ayar after insert as
begin
insert into ayar_iz (tablo, kod, durum)
values ('AYAR', new.kod,
case when is_installing_level(3) then 'L3' when is_upgrading() then 'UPG' else 'YOK' end);
end;