Null Agregalarla çalışmak için işlevler 

isNull 

Bağımsız değişken olup olmadığını denetler NULL.

isNull(x)

Parametre

  • x — A value with a non-compound data type.

Döndürülen değer

  • 1 eğer x oluyor NULL.
  • 0 eğer x değildir NULL.

Örnek

Giriş tablosu

┌─x─┬────y─┐
│ 1 │ ᴺᵁᴸᴸ │
│ 2 │    3 │
└───┴──────┘

Sorgu

SELECT x FROM t_null WHERE isNull(y)
┌─x─┐
│ 1 │
└───┘

isNotNull 

Bağımsız değişken olup olmadığını denetler NULL.

isNotNull(x)

Parametre:

  • x — A value with a non-compound data type.

Döndürülen değer

  • 0 eğer x oluyor NULL.
  • 1 eğer x değildir NULL.

Örnek

Giriş tablosu

┌─x─┬────y─┐
│ 1 │ ᴺᵁᴸᴸ │
│ 2 │    3 │
└───┴──────┘

Sorgu

SELECT x FROM t_null WHERE isNotNull(y)
┌─x─┐
│ 2 │
└───┘

birleşmek 

Olup olmadığını soldan sağa denetler NULL argümanlar geçti ve ilk olmayan döndürür-NULL tartışma.

coalesce(x,...)

Parametre:

  • Bileşik olmayan tipte herhangi bir sayıda parametre. Tüm parametreler veri türüne göre uyumlu olmalıdır.

Döndürülen değerler

  • İlk sigara-NULL tartışma.
  • NULL, eğer tüm argümanlar NULL.

Örnek

Bir müşteriyle iletişim kurmak için birden çok yol belirtebilecek kişilerin listesini düşünün.

┌─name─────┬─mail─┬─phone─────┬──icq─┐
│ client 1 │ ᴺᵁᴸᴸ │ 123-45-67 │  123 │
│ client 2 │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ      │ ᴺᵁᴸᴸ │
└──────────┴──────┴───────────┴──────┘

Bu mail ve phone alanlar String tip ofindedir, ancak icq Fi fieldeld is UInt32, bu yüzden dönüştürülmesi gerekiyor String.

Müşteri için ilk kullanılabilir iletişim yöntemini kişi listesinden alın:

SELECT coalesce(mail, phone, CAST(icq,'Nullable(String)')) FROM aBook
┌─name─────┬─coalesce(mail, phone, CAST(icq, 'Nullable(String)'))─┐
│ client 1 │ 123-45-67                                            │
│ client 2 │ ᴺᵁᴸᴸ                                                 │
└──────────┴──────────────────────────────────────────────────────┘

ifNull 

Ana bağımsız değişken ise alternatif bir değer döndürür NULL.

ifNull(x,alt)

Parametre:

  • x — The value to check for NULL.
  • alt — The value that the function returns if x oluyor NULL.

Döndürülen değerler

  • Değer x, eğer x değildir NULL.
  • Değer alt, eğer x oluyor NULL.

Örnek

SELECT ifNull('a', 'b')
┌─ifNull('a', 'b')─┐
│ a                │
└──────────────────┘
SELECT ifNull(NULL, 'b')
┌─ifNull(NULL, 'b')─┐
│ b                 │
└───────────────────┘

nullİf 

Dönüşler NULL argümanlar eşitse.

nullIf(x, y)

Parametre:

x, y — Values for comparison. They must be compatible types, or ClickHouse will generate an exception.

Döndürülen değerler

  • NULL, argümanlar eşitse.
  • Bu x bağımsız değişkenler eşit değilse, değer.

Örnek

SELECT nullIf(1, 1)
┌─nullIf(1, 1)─┐
│         ᴺᵁᴸᴸ │
└──────────────┘
SELECT nullIf(1, 2)
┌─nullIf(1, 2)─┐
│            1 │
└──────────────┘

assumeNotNull 

Bir tür değeri ile sonuçlanır Nullable bir sigara için- Nullable eğer değer değil NULL.

assumeNotNull(x)

Parametre:

  • x — The original value.

Döndürülen değerler

  • Olmayan orijinal değeri-Nullable tipi, değilse NULL.
  • Olmayan için varsayılan değer-Nullable özgün değer ise yazın NULL.

Örnek

Düşünün t_null Tablo.

SHOW CREATE TABLE t_null
┌─statement─────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.t_null ( x Int8,  y Nullable(Int8)) ENGINE = TinyLog │
└───────────────────────────────────────────────────────────────────────────┘
┌─x─┬────y─┐
│ 1 │ ᴺᵁᴸᴸ │
│ 2 │    3 │
└───┴──────┘

Uygula assumeNotNull fonksiyonu için y sütun.

SELECT assumeNotNull(y) FROM t_null
┌─assumeNotNull(y)─┐
│                0 │
│                3 │
└──────────────────┘
SELECT toTypeName(assumeNotNull(y)) FROM t_null
┌─toTypeName(assumeNotNull(y))─┐
│ Int8                         │
│ Int8                         │
└──────────────────────────────┘

toNullable 

Bağımsız değişken türünü dönüştürür Nullable.

toNullable(x)

Parametre:

  • x — The value of any non-compound type.

Döndürülen değer

  • Bir ile giriş değeri Nullable tür.

Örnek

SELECT toTypeName(10)
┌─toTypeName(10)─┐
│ UInt8          │
└────────────────┘
SELECT toTypeName(toNullable(10))
┌─toTypeName(toNullable(10))─┐
│ Nullable(UInt8)            │
└────────────────────────────┘

Orijinal makale

Rating: 2.5 - 2 votes

Was this content helpful?
★★★☆☆