Özel kayan nokta değerleri
Şunlar için geçerlidir: Databricks SQL
Databricks Runtime
Birkaç özel kayan nokta değeri büyük/küçük harfe duyarsız bir şekilde ele alınıyor:
- Inf, +Inf, Infinity, +Infinity: pozitif sonsuzluk
- -Inf, -Infinity: negatif sonsuzluk
- NaN: sayı değil
Pozitif ve negatif sonsuz semantiği
Pozitif ve negatif sonsuzluk aşağıdaki semantiklere sahiptir:
- Herhangi bir pozitif değerle çarpılan pozitif sonsuzluk, pozitif sonsuzluk döndürür.
- Herhangi bir pozitif değerle çarpılan negatif sonsuzluk, negatif sonsuzluk döndürür.
- Herhangi bir negatif değerle çarpılan pozitif sonsuzluk, negatif sonsuzluk döndürür.
- Negatif sonsuzluk herhangi bir negatif değerle çarpılırsa pozitif sonsuzluk döndürür.
- Pozitif veya negatif sonsuzluk 0 ile çarpılırsa NaN döndürür.
- Pozitif veya negatif sonsuzluk kendisine eşittir.
- Toplamalarda, tüm pozitif sonsuzluk değerleri birlikte gruplandırılır. Benzer şekilde, tüm negatif sonsuzluk değerleri birlikte gruplandırılır.
- Pozitif sonsuzluk ve negatif sonsuz, birleştirme anahtarlarında normal değerler olarak değerlendirilir.
- Pozitif sonsuzluk, NaN'den daha düşük ve diğer değerlerden daha yüksek sıralar.
- Negatif sonsuzluk, diğer değerlerden daha düşük sıralar.
NaN semantiği
Standart kayan nokta semantiğiyle tam olarak eşleşmeyen veya double
türleriyle float
ilgilenirken NaN aşağıdaki semantiği içerir:
- NaN = NaN true döndürür.
- Toplamalarda, tüm NaN değerleri birlikte gruplandırılır.
- NaN, birleştirme anahtarlarında normal bir değer olarak değerlendirilir.
- NaN değerleri artan düzende olduğunda, diğer sayısal değerlerden daha büyük olduğunda en sondadır.
Örnekler
> SELECT double('infinity');
Infinity
> SELECT float('-inf');
-Infinity
> SELECT float('NaN');
NaN
> SELECT double('infinity') * 0;
NaN
> SELECT double('-infinity') * (-1234567);
Infinity
> SELECT double('infinity') < double('NaN');
true
> SELECT double('NaN') = double('NaN');
true
> SELECT double('inf') = double('infinity');
true
> SELECT COUNT(*), c2
FROM VALUES (1, double('infinity')),
(2, double('infinity')),
(3, double('inf')),
(4, double('-inf')),
(5, double('NaN')),
(6, double('NaN')),
(7, double('-infinity'))
AS test(c1, c2)
GROUP BY c2;
2 NaN
2 -Infinity
3 Infinity
İlişkili
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin