sql >> Databáze >  >> RDS >> PostgreSQL

Jak funguje Ceiling() v PostgreSQL

V PostgreSQL je to ceiling() Funkce se používá pro zaokrouhlení čísla nahoru na nejbližší celé číslo.

Je to podobné jako round() , kromě toho, že se pouze zaokrouhluje nahoru. round() funkce se zaokrouhlí nahoru nebo dolů podle potřeby.

Je také podobný floor() , kromě floor() zaokrouhluje dolů místo nahoru.

Syntaxe

ceiling() funkci lze použít jedním z následujících způsobů:

ceil(dp or numeric)
ceiling(dp or numeric)

Kde dp označuje double precision .

Návratový typ je stejný jako vstupní typ.

Obě syntaxe fungují úplně stejně. První syntaxe je jednoduše stručnější způsob, jak to udělat.

Příklad

Zde je příklad, který demonstruje jeho použití.

SELECT ceiling(12.10);

Výsledek:

13

V tomto případě jsou zlomkové sekundy 10 a číslo je zaokrouhleno nahoru na nejbližší celé číslo.

Asi je to samozřejmé, ale když zvětším zlomkové sekundy na 50, pořád to zaokrouhlí nahoru.

SELECT ceiling(12.70);

Výsledek:

13

Záporná čísla

Zde je příklad, který používá záporná čísla.

SELECT 
  ceiling(-12.10),
  ceiling(-12.90);

Výsledek:

 ceiling | ceiling
---------+---------
     -12 | -12

Ceil() vs. Ceiling()

Jak již bylo zmíněno, ceil() a ceiling() jsou ekvivalentní.

Zde je příklad, který ukazuje obě syntaxe vedle sebe.

SELECT 
  ceil(12.10),
  ceiling(12.10);

Výsledek:

 ceil | ceiling
------+---------
   13 | 13

Ceiling() vs. Round()

Pokud bych používal round() , 12.10 hodnota by byla zaokrouhlena dolů (protože zlomkové sekundy jsou menší než 50).

Zde je příklad, který ilustruje rozdíl mezi ceiling() a round() .

SELECT 
  ceiling(12.10),
  round(12.10);

Výsledek:

 ceiling | round
---------+-------
      13 | 12

Pokud však zvýším zlomkové sekundy na 50, obě vrátí stejný výsledek.

SELECT 
  ceiling(12.50),
  round(12.50);

Výsledek:

 ceiling | round
---------+-------
      13 | 13

Ceiling() vs Floor()

Postgres má také floor() funkce, která je podobná funkci ceiling() kromě toho, že vždy zaokrouhlí číslo dolů .

Zde je příklad, který ukazuje obě syntaxe vedle sebe.

SELECT 
  ceiling(12.80),
  floor(12.80);

Výsledek:

 ceiling | floor
---------+-------
      13 | 12

A zde je příklad, který používá záporné hodnoty.

SELECT 
  ceiling(-12.30),
  floor(-12.30);

Výsledek:

 ceiling | floor
---------+-------
     -12 | -13


  1. Vygenerujte n řádků NULL v PostgreSQL

  2. Základní správa Oracle 12c Multitenant

  3. Zobrazit úplný SQL dotaz v Zobrazit seznam procesů MySQL

  4. Uložená procedura MySQL s parametry