Mai mult

ST_LineMerge nu returnează LineString

ST_LineMerge nu returnează LineString


Vreau să creez un LINESTRING dintr-un MULTILINESTRING. Cu toate acestea, în cazul următorST_MultiLineStringeste returnat:

Selectați ST_GeometryType (ST_LineMerge (ST_AsText ('MULTILINESTRING ((-70.52570888 -33.48112668, -70.52552472 -33.48116414), (-70.52552472 -33.48116414, -70.52453208 -33.4812))

De ce este cazul? Căptușelile nu se intersectează și sunt conectate. Cum pot rezolva acest lucru?


Motivul este probabil în precizia calculului numeric. Eliminarea ultimei zecimale din coordonata Y a punctelor de conectare este suficientă pentru ca interogarea să returneze LINESTRING

SELECT ST_AsText (ST_LineMerge (ST_GeomFromText ('MULTILINESTRING ((-70.52570888 -33.48112668, -70.52552472 -33.4811641), (-70.52552472 -33.4811641, -70.52453208 -33.4812))

EDITAȚI | ×:

Este posibil să renunțați la zecimale din mers folosind funcția ST_SnapToGrid:

SELECT ST_AsText (ST_LineMerge (ST_SnapToGrid (ST_GeomFromText) ('MULTILINESTRING ((-70.52570888 -33.48112668, -70.52552472 -33.48116414), (-70.52552472 -33.48116414,) -70.533),

MYSQL / MariaDB & # 8211 SQL util atât în ​​crearea de noi tabele, cât și în clarificarea parametrilor impliciți

În cadrul unei instanțe pentru a identifica seturile de caractere implicite și colaționarea în toate bazele de date.

Pentru a modifica seturile de caractere și colațiile implicite pentru o bază de date într-o instanță MySQL sau MaraiDB.

Crearea tabelului & # 8211 Șablon SQL

Și o sursă bună de tipuri de date sunt aici
Tehnologie pe net

Există repostări neconfirmate că interogările împotriva câmpurilor TEXT sunt în general de 3 ori mai lente decât împotriva câmpurilor VARCHAR.

Valorile din coloanele VARCHAR sunt șiruri de lungime variabilă. Lungimea poate fi specificată ca valoare de la 0 la 255 înainte de MySQL 5.0.3 și de la 0 la 65.535 în 5.0.3 și versiunile ulterioare. Lungimea maximă efectivă a unui VARCHAR în MySQL 5.0.3 și versiunile ulterioare este supusă mărimii maxime a rândului (65.535 octeți, care este partajată între toate coloanele) și setului de caractere utilizat.

Și dacă doriți să schimbați motorul pe o masă retrospectiv. Vezi OPERAȚII.

Și o scurtă notă despre alegerea dvs. de colaționare

De fapt, probabil că doriți să utilizați utf8_unicode_ci sau utf8_general_ci.

utf8_general_ci sortează eliminând toate accentele și sortând ca și cum ar fi ASCII
utf8_unicode_ci folosește ordinea de sortare Unicode, deci sortează corect în mai multe limbi
Cu toate acestea, dacă utilizați acest lucru doar pentru a stoca textul în limba engleză, acestea nu ar trebui să difere.

Notă mai jos este o persoană care afirmă că este foarte conștient de această problemă care poate apărea folosind utf8_general_ci

& # 8220 MySQL nu va face distincția între unele caractere din instrucțiunile selectate, dacă se utilizează colecția utf8_general_ci. Acest lucru poate duce la erori foarte urâte și # 8211, în special, de exemplu, unde sunt implicate nume de utilizator. În funcție de implementarea care utilizează tabelele bazei de date, această problemă ar putea permite utilizatorilor rău intenționați să creeze un nume de utilizator care să corespundă unui cont de administrator.

Această problemă se expune cel puțin la primele versiuni 5.x & # 8211 I & # 8217m nu sunt sigur dacă acest comportament a fost modificat ulterior. & # 8221

Iată câteva coduri care mi-au permis să resetez indexul de creștere automată pe o masă.

L-am testat și funcționează cu INNODB și MySQL

O altă modalitate de a face acest lucru ar putea fi să aruncați masa pkid și apoi să o recreați din nou


023 Postgres & # 8211 Clasament și variabila Timestamp

O investigație de clasificare / variabila timestamp, variabila timp și variabila interval.

Ore minute și secunde
Ore minute și zecimi de secunde
Ore minute și sutimi de secunde
Ore minute și mii de secunde

Deci, pentru a evidenția exemplele, voi crea mai întâi o bază de date numită timeexampledb

CREAȚI baza de timp timeexampledb

Acum permite conectarea la baza de date respectivă

Acum creez un tabel numit timebucket care va conține exemple de diferite formate de timp.

În continuare introduceți câteva exemple și vedeți ce obținem.

și să vedem cum arată

Aici puteți vedea din opțiunile zecimii de secundă în care apăsați dreapta pe o secundă, apoi o cifră va dispărea.

Acum putem face clasament pe acestea pentru a determina poziția.

Deci, să schimbăm acest lucru pentru a ordona următoarea coloană.

Se pare că funcționează, dar să încercăm celelalte coloane.

Pare corect, dar pentru o bună măsură miimi de secundă.

Și acum să adăugăm o coloană de interval

Dar să adăugăm o altă coloană time5 și să actualizăm la ora de acum, astfel încât să putem crea niște intervale

Acum, dacă vrem să obținem timpul dintre articole, putem face următorul SQL

Să încercăm cu o altă coloană de timp

Așa că, în continuare, reduc pkid record 14 cu o zi și repet să văd ce se întâmplă.

și rulați din nou selecția anterioară

și vedem că intervalul este înregistrat corect.

Acum, dacă vrem să clasăm pe tinterval, nu am putut să o fac direct dintr-o interogare, așa că am continuat și am actualizat fosta coloană timeinterval după cum urmează

și acum facem o selecție în acest sens

Dar nu arătăm faptul că 14 ar trebui să fie o zi, deoarece acest lucru ar fi trebuit să definim intervalul de timp ca o variabilă de interval mai degrabă decât o variabilă de timp (0).

Deci, putem face acest lucru după cum urmează și să actualizăm în mod corespunzător.

Și obținem rezultatul corect

Și acum permiteți să le clasificați pentru a verifica dacă le sortează corect.

Și obținem rezultatul corect


SQL Azure & # 8211 TSQL Funcția definită de utilizator & # 8211 Separați mai multe e-mailuri din câmpul NVARCHAR (MAX)

Codul de deversare a stivei, adaptat și testat personal
Extrageți adresa de e-mail din șir folosind tsql

O continuare a lucrării cu șiruri de caractere în TSQL legată în mod specific de e-mailuri.

În primul rând creați următoarea funcție

Apoi creați o Vizualizare a ceea ce vă interesează după cum urmează .. Rețineți că scot returnarea transportului, deoarece interogarea mea ulterioară nu le place și în e-mailurile acestea există frecvent.

Apoi rulați vizualizarea recent creată printr-o interogare.

Câteva lucruri aici
Mai multe e-mailuri vor fi selectate și plasate ca înregistrări separate, deci dacă există un șir care citește

Aceasta este o propoziție cu două emiale [email protected] și a doua [email protected]

se va întoarce
[email protected]
[email protected]

Dacă un e-mail pornește câmpul, acest lucru NU va funcționa după găsirea simbolului @, acesta va conta înainte și nu va găsi un spațiu și așa că setați spațiul înainte la Null, va returna doar domeniul e-mailului. Voi căuta să remediez acest lucru la un moment dat.

În al doilea rând, dacă e-mailurile din câmp conțin caractere html speciale adiacente, cum ar fi acestea, vor fi preluate și incluse ca și cum ar face parte din adresele de e-mail.

Putem remedia acest lucru scanând prin câmpul varchar (max) și eliminând caractere speciale.

NOTĂ: Dacă lucrați cu corpuri de e-mail, returnările de transport vor înșela și interogarea de mai sus, caz în care luați în considerare rularea câmpului printr-un fel de vizualizare de înlocuire cu o sintaxă similară cu


019 Postgres și Postgis: încărcați mai multe fișiere de formă într-o bază de date Postgis

Mediu inconjurator
Windows 10
Postgresql 11

Pentru a începe aveți nevoie de un set de fișiere de formă pentru care știți locația.

În scop demonstrativ, folosesc fișierele de formă de date deschise OS Open Road.

Apoi în explorator creez un director în rădăcina c: numită date.
Și apoi creez două subdirectoare.
1 & # 8211 shp
2 & # 8211 mp

Plasați toate fișierele de formă pe care doriți să le încărcați într-o bază de date postgis în directorul c: data shp nou creat.

Apoi vom crea fișiere text SQL care pot fi utilizate pentru a transfera informațiile din formatul de formă în Postgis. În acest moment nu este necesar să știți nici măcar în ce bază de date veți plasa fișierele de formă.

Apoi deschideți promptul de comandă și navigați la directorul bin al instalării postgres specifice. Standard după cum urmează: -

În continuare copiez în textul de mai jos.

Pentru% f în (C: data shp * shp) faceți Shp2pgsql –s 27700% f public.%

Aceasta va lua toate fișierele de formă din directorul C: data shp și va crea fișiere text sql plasându-le în C: data sql . După finalizare, vă recomandăm să accesați directorul și să verificați dacă a avut loc crearea. Puteți chiar să priviți textul dintr-un singur fișier, de preferință cu un fel de editor de cod pentru a verifica dacă arată aproximativ corect.

Apoi în psql creez baza de date țintă și aplic extensia postgis.
creați baza de date osopenroaddb
creați extensii postgis

Apoi, dacă nu aveți mult timp pe mâini, veți dori să mergeți la
C: Users Mark AppData Roaming postgresql
și deschideți fișierul pgpass.conf și plasați următoarea linie în el.

Fără acea linie vi se va cere o parolă de fiecare dată când este rulat un nou fișier sql.

Următorul înapoi în directorul bin al liniei de comandă faceți următoarele. Rețineți nicio parolă pe care o ia din fișierul pgpass.conf.

Pentru% f în (c: data sql * sql) do psql –h localhost –d osopenroaddb –U postgres –f% f> nul

Dacă aveți o mulțime de fișiere mari, acest lucru ar putea dura ceva timp. Dar, odată terminat, toate fișierele dvs. de formă ar trebui să fie acum în instanța dvs. postgis în baza de date specificată.


Forma de bază a declarației SELECT acceptate este:

* Poate fi folosit pentru a specifica toate coloanele din listă de expresii a coloanei, în timp ce & lttable_name & gt. * poate fi folosit pentru a specifica toate coloanele din tabelul dat.

Coloanele pot fi citate dublu pentru a induce sensibilitate la majuscule și pentru a utiliza cuvinte rezervate ca nume de coloane, de exemplu, „PERCENT”.

TOP & ltn & gt returnează primul n înregistrări (până la 20000 înregistrări în mod implicit), dar este configurabil.

lista de expresii de grupare poate conține nume de coloane, aliasuri, expresii sau poziții (de exemplu, GROUP BY 2 pentru a se agrega la a doua coloană din lista SELECT).

având listă de expresii poate conține expresii de grupare sau orice aliasuri de expresie de grupare definite în lista SELECT.

ordonarea listei de expresii poate conține nume de coloane, expresii sau poziții de coloane (de exemplu, GROUP BY 2 pentru a se agrega pe a doua coloană din lista SELECT). Comanda implicită este ASC. Ordinea implicită nulă este NULLS FIRST când se utilizează ordinea crescătoare și NULLS LAST când se utilizează ordinea descendentă. Formatul general pentru fiecare expresie de ordonare separată prin virgule din listă este:

LIMIT aplică paginarea setului de rezultate, începând de la 0 decalaj (dacă este specificat) și returnare num rânduri înregistrări.

Interogare fără tabletă¶

O interogare fără clauză FROM poate fi utilizată pentru a returna un singur rând de date care conține o expresie constantă sau constantă.

De exemplu, pentru a selecta ziua curentă a săptămânii:

A interogare fără masă va crea un set de rezultate susținut de un tabel replicat, în mod implicit.

Sprijinit tipuri de unire sunt:

  • INTERIOR - rânduri potrivite între două tabele
  • STÂNGA - rânduri potrivite între două tabele și rânduri în tabelul din stânga, fără rânduri potrivite în tabelul din dreapta
  • DREAPTA - potrivirea rândurilor între două tabele și rândurile din tabelul din dreapta, fără rânduri potrivite în tabelul din stânga
  • FULL OUTER potrivire rânduri între două tabele și rânduri în ambele tabele fără rânduri potrivite în cealaltă
  • CROSS - toate rândurile dintr-un tabel se potrivesc cu toate rândurile din celălalt

Există două scheme de execuție care sunt utilizate pentru procesare se alătură, în funcție de distribuția tabelelor unite:

    - foarte performant, dar criteriile de asociere nativă trebuie îndeplinite - extrem de flexibile, ca native a te alatura restricțiile sunt ridicate, dar mai puțin performante din cauza comunicării interprocesorului

Deși restricțiile de distribuție a datelor pentru asocierile native nu există pentru se alătură realizat prin SQL, urmând a te alatura liniile directoare privind partajarea vor avea ca rezultat interogări mult mai performante.

Kinetica acceptă ambele JOIN. Sintaxa clauzei ON și WHERE pentru îmbinări interioare toate îmbinare exterioară tipurile (STÂNGA, DREAPTA și AMP FULL OUTER) necesită JOIN. Sintaxa ON.

De exemplu, pentru a enumera numele fiecărui angajat și numele managerului angajatului, utilizând clauza WHERE pentru a specifica a te alatura condiție:

Pentru a enumera numele fiecărui angajat și al managerului asociat, chiar și pentru angajații care nu au un manager, utilizând JOIN. Sintaxă ON pentru a specifica a te alatura condiție:

Kinetica acceptă noțiunea de potrivire inexactă a te alatura prin intermediul ASOF a te alatura funcţie. Această caracteristică permite ca fiecare înregistrare de tabel din partea stângă să fie potrivită cu o singură înregistrare de tabel din partea dreaptă a cărei valoare a coloanei de asociere este cea mai mică sau cea mai mare valoare dintr-un interval relativ la valoarea coloanei de asociere din partea stângă. În cazul în care mai multe înregistrări de tabel din partea dreaptă au aceeași valoare cea mai mică sau cea mai mare pentru o anumită înregistrare de tabel din partea stângă, doar una dintre înregistrările tabelului din partea dreaptă va fi aleasă și returnată ca parte a a te alatura.

Formatul funcției ASOF este după cum urmează:

  • coloana_stânga - numele coloanei pe care trebuie să vă alăturați din tabelul din stânga
  • coloana_dreapta - numele coloanei pe care să vă alăturați din tabelul din dreapta
  • rel_range_begin - valoare constantă care definește poziția, în raport cu fiecare valoare a coloanei din partea stângă, a începutului intervalului în care să se potrivească valorile coloanei din partea dreaptă, utilizați o constantă negativă pentru a începe intervalul înainte de valoarea coloanei din partea stângă sau una pozitivă pentru a începe după ea
  • rel_range_end - valoare constantă care definește poziția, în raport cu fiecare valoare a coloanei din stânga, a sfârșitului intervalului în care să se potrivească valorile coloanei din dreapta, utilizați o constantă negativă pentru a termina intervalul înainte de valoarea coloanei din stânga sau o unul pozitiv să se termine după ea
  • MIN | MAX - utilizați MIN pentru a returna înregistrarea potrivită din partea dreaptă cu cea mai mică valoare a coloanei de asociere utilizați MAX pentru a returna înregistrarea potrivită din partea dreaptă cu cea mai mare valoare a coloanei de asociere

În mod efectiv, fiecare valoare a coloanei din partea dreaptă trebuie să fie:

În cadrul setului de meciuri din partea dreaptă pentru fiecare înregistrare din partea stângă, cea cu valoarea coloanei MIN sau MAX va fi returnată în a te alatura. În cazul unei egalități pentru valoarea coloanei MIN sau MAX, va fi selectată o singură înregistrare din partea dreaptă pentru returnare în a te alatura pentru acel record din stânga.

Exemple¶

Următorul apel ASOF ar putea fi utilizat pentru a enumera, pentru fiecare oră de sosire a zborului, cea mai rapidă oră de plecare a zborului care are loc efectiv între jumătate de oră și o oră și jumătate după sosire efectiv, porțiunea de potrivire a timpului unei interogări de zbor de legătură:

Acest apel ASOF returnează locațiile din partea dreaptă care sunt cele mai apropiate spre est de fiecare locație din partea stângă, pentru locații aflate la 5 grade de partea stângă:

De exemplu, pentru a potrivi un set de tranzacții de acțiuni cu prețurile de deschidere pentru acele acțiuni (dacă există un record de preț de deschidere în termen de 24 de ore înainte de tranzacționare) și pentru a include tranzacții pentru care nu există nici un record de preț de acțiune de deschidere:

În timp ce ASOF a te alatura funcția poate fi utilizată doar ca parte a a te alatura, poate fi transformat într-o condiție de filtrare prin selectarea secundară a criteriilor de filtrare din clauza FROM și alăturarea la acel criteriu.

De exemplu, pentru a căuta prețul acțiunilor pentru o anumită companie de la o dată dată:

Utilizarea KI_HINT_NO_LATE_MATERIALIZATION este esențială, aici, ca a te alatura necesită un tabel materializat, pe care acest indiciu îl asigură, pentru a reuși.

Agregare¶

Clauza GROUP BY poate fi utilizată pentru a segmenta datele în grupuri și pentru a aplica funcții agregate peste valorile din fiecare grup. Funcțiile de agregare aplicate datelor fără o clauză GROUP BY vor fi aplicate pe întregul set de rezultate.

GROUP BY poate funcționa pe coloane, expresii de coloană sau poziția unui membru al clauzei SELECT (unde 1 este primul element), dar nu funcționează pe aliasuri de coloană.

De exemplu, pentru a găsi tariful mediu al taxiului din setul de date despre taxi:

Pentru a găsi distanțele de călătorie minime, maxime și medii, precum și numărul mediu de pasageri pentru fiecare furnizor pe an din setul de date de taxi (eliminarea datelor cu distanțe de călătorie eronate):

Grupare¶

Clauza GROUP BY poate fi, de asemenea, utilizată pentru a aplica următoarele funcții de grupare peste valorile din fiecare grup:

Cu fiecare dintre acestea, funcția de agregare GROUPING () poate fi utilizată pentru a distinge agregate nul valorile din datele din nul valorile generate de seturile ROLLUP, CUBE sau GROUPING funcția de grupare.

De exemplu, următorul CASE va transforma agregatul nul valorile din coloana Sector într-un grup & ltUNKNOWN SECTOR & gt și nul valoarea generată de funcția de grupare într-un & ltALL SECTORI & grup gt:

RULEAZö

Se calculează funcția ROLLUP (lista expr) n + 1 agregate pentru n numărul de coloane din lista expr.

De exemplu, următoarea interogare va agrega prețul mediu de deschidere al acțiunilor pentru aceste grupuri:

  • Fiecare sector de piață și perechi de simboluri de acțiuni
  • Fiecare sector de piață
  • Toate sectoarele și simbolurile

Funcția CUBE (lista expr) calculează 2 n agregate pentru n numărul de coloane din lista expr.

De exemplu, următoarea interogare va agrega prețul mediu de deschidere pentru aceste grupuri:

  • Fiecare sector de piață și perechi de simboluri de acțiuni
  • Fiecare sector de piață
  • Fiecare simbol stoc
  • Toate sectoarele și simbolurile

SETURI DE GRUPARE¶

Funcția GROUPING SETS (lista expr) calculează agregatele pentru fiecare grup de coloane din lista expr.

De exemplu, următoarea interogare va agrega prețul mediu de deschidere al acțiunilor pentru aceste grupuri:

Fereastră¶

Funcțiile ferestrei sunt disponibile prin utilizarea clauzei OVER, care poate partiționa rândurile în cadre. Diferite tipuri de funcții pot fi utilizate pentru a agrega date pe o fereastră glisantă.

Forma de bază pentru un fereastră este:

Clauza ORDER BY nu este necesară atunci când funcția fereastră este FIRST_VALUE () sau LAST_VALUE (). Aceste două funcții sunt, de asemenea, singurele funcții de clasare care pot conține o clauză de cadru RANGE sau ROWS.

Ordinea implicită a înregistrărilor din cadrul fiecărei partiții este ASC. Ordinea implicită nulă este NULLS FIRST când se utilizează ordinea crescătoare și NULLS LAST când se utilizează ordinea descendentă. Formatul general pentru fiecare expresie de ordonare separată prin virgule din listă este:

O singură coloană poate fi specificată în lista de expresii de comandă atunci când se utilizează RANGE. Atunci când se utilizează ROWS, cadrul se aplică după orice comandă, astfel încât, în timp ce mai multe coloane pot apărea în lista de exprimare a comenzii, va exista o singură clauză ROWS după listă.

Când este specificat un cadru RANGE, CURRENT ROW include toate rânduri de la egal la egal (rânduri cu aceleași valori de ordonare). Astfel, atunci când primul dintr-un set de rânduri de la egal la egal este întâlnit, toate asociate rânduri de la egal la egal sunt incluse în cadru (nu doar primul).

În schimb, atunci când este specificat un cadru ROWS, CURRENT ROW va direcționa doar că rânduri de la egal la egal până la rândul curent și inclusiv sunt incluse în cadru - următoarele rânduri de la egal la egal nu va fi inclus.

Tipul implicit de cadru este GAMA ÎNTRE PRECEDERE NELIMITATĂ ȘI RÂND CURENT.

Dacă se specifică o clauză de cadru fără o BETWEEN, clauza este aplicată la începutul cadrului, sfârșitul cadrului va fi în continuare implicit pentru CURRENT ROW.

De exemplu, pentru a calcula suma totală a sumelor totale colectate de fiecare furnizor de taxiuri pe parcursul unei zile date, precum și numărul de alte călătorii care au avut loc în decurs de 5 minute de la fiecare călătorie:

Pentru a calcula o medie mobilă cu 5 înainte și 10 după distanțe de călătorie de 4 pasageri pe furnizor pe parcursul unei zile date:

Pentru a clasifica, de către furnizor, sumele totale colectate din călătoriile cu 3 pasageri într-o zi dată:

Pentru a compara suma totală a fiecărei călătorii cu cea mai mică, cea mai mare și cea mai mare sumă medie medie pentru călătoriile cu 5 pasageri pentru fiecare furnizor pe parcursul unei zile date:

Pentru a compara suma totală medie a fiecărui furnizor cu suma totală medie a acestora în intervalul intercuartil:

PIVOT¶

Clauza PIVOT poate fi utilizată pentru pivotarea coloanelor, valorile coloanei "rotând" în valorile rândurilor, creând tabele denormalizate mai largi și mai scurte din tabele mai lungi și mai normalizate.

Forma de bază pentru un pivot este:

De exemplu, având în vedere un tabel sursă phone_number, care listează fiecare număr de telefon pentru un client ca o înregistrare separată în tabel, o pivot operația poate fi efectuată, creând o singură înregistrare per client cu numerele de telefon mobil de acasă, de la serviciu și amp ca coloane separate.

Se poate aplica următoarea operație de pivotare:

Datele vor fi pivotate într-un tabel ca acesta:

UNPIVOT¶

Clauza UNPIVOT poate fi utilizată pentru a dezactiva coloanele, pentru a "roti" valorile rândurilor în valori de coloană, creând tabele mai lungi și mai normalizate din tabele mai scurte și mai denormalizate.

Forma de bază pentru un unpivot este:

De exemplu, având în vedere un tabel sursă client_contact, care listează numerele de telefon mobil de acasă, de serviciu și amp pentru fiecare client din tabel, un unpivot operația poate fi efectuată, creând înregistrări separate de telefonie mobilă de acasă, de serviciu și amp pentru fiecare client.

Următoarele unpivot operația poate fi aplicată:

Datele vor fi nepivotate într-un tabel ca acesta:

Dacă numele coloanelor originale pot fi folosite ca valori ale cheii unpivot, așa cum este, preselecția și redenumirea acelor coloane utilizând o subinterogare din clauza FROM pot fi eliminate.

De exemplu, nepivotarea fără aliasarea coloanelor de grad trimestrial va duce la utilizarea exactă a acestor nume de coloane ca valori ale trimestrului:

Setați operațiuni¶

Există trei tipuri de operații de set acceptate, fiecare având opțiunea de a returna înregistrări duplicate în setul de rezultate utilizând cuvântul cheie ALL:

    - returnează toate înregistrările din ambele seturi de date sursă - returnează numai înregistrările care există în ambele seturi de date sursă - returnează toate înregistrările care există în primul set de date, dar nu în al doilea

UNIUNE¶

Operatorul de seturi UNION creează o listă unică de înregistrări din rezultatele a două instrucțiuni SELECT. Utilizați cuvântul cheie ALL pentru a păstra toate înregistrările din ambele seturi omiteți-l pentru a elimina înregistrările duplicate și pentru a forma o singură listă de înregistrări unice între cele două seturi. Consultați Limitări și precauții pentru limitări.

De exemplu, având în vedere un tabel cu elementele din meniul prânzului și un alt tabel cu elementele din meniul prânzului, se poate folosi un UNION pentru a returna împreună toate elementele unice ale meniului de prânz și cina, inclusiv elementele care sunt aceleași în ambele meniuri, dar cu un preț diferit:

Întrucât exemplul include prețul și toate coloanele selectate trebuie să se potrivească între cele două seturi pentru ca un articol să fie considerat duplicat, un articol de prânz care are un preț diferit ca un articol de cină ar apărea și în setul de rezultate.

A UNION ALL poate fi folosit pentru a returna împreună toate elementele din meniul prânzului și cina, inclusiv duplicatele:

INTERSECT¶

Operatorul de seturi INTERSECT creează o listă unică de înregistrări care există în ambele seturi de rezultate din două instrucțiuni SELECT. Utilizați cuvântul cheie ALL pentru a păstra înregistrări duplicate care există în ambele seturi omiteți-l pentru a elimina înregistrările duplicate și pentru a forma o listă unică de înregistrări care există în ambele seturi. Consultați Limitări pentru limitări.

De exemplu, având în vedere un tabel cu elementele din meniul prânzului și un alt tabel cu elementele din meniul prânzului, se poate utiliza un INTERSECT pentru a returna toate elementele din meniul prânzului (cu excepția duplicatelor) care sunt, de asemenea, articole pentru cină la același preț:

Deoarece exemplul include prețul și toate coloanele selectate trebuie să se potrivească între cele două seturi pentru un articol care urmează să fie inclus, un articol de prânz care are un preț diferit, deoarece un articol de cină nu ar apărea în setul de rezultate.

CU EXCEPTIA¶

Operatorul de set EXCEPT efectuează scăderea setului, creând o listă unică de înregistrări care există în primul set de rezultate al instrucțiunii SELECT, dar nu și în al doilea set de rezultate al instrucțiunii SELECT. Utilizați cuvântul cheie ALL pentru a păstra înregistrări duplicate care există în primul set, dar nu în al doilea omiteți-l pentru a elimina înregistrările duplicate și pentru a forma o listă unică de înregistrări care există în primul set, dar nu și în al doilea. Consultați Limitări pentru limitări:

De exemplu, având în vedere un tabel cu elementele din meniul prânzului și un alt tabel cu elementele din meniul prânzului, se poate utiliza un EXCEPT pentru a returna toate elementele din meniul prânzului (cu excepția duplicatelor) care nu sunt, de asemenea, articole pentru cină la același preț:

Deoarece exemplul include prețul și toate coloanele selectate trebuie să se potrivească între cele două seturi pentru ca un articol să fie eliminat, un articol de prânz care are un preț diferit, deoarece un articol de cină ar apărea în continuare în setul de rezultate.

CU (Expresii comune în tabel) ¶

Operațiunea WITH, cunoscută și sub denumirea de Expresie de masă comună (CTE) creează un set de date care poate fi aliasat și utilizat de una sau de mai multe ori în operațiile ulterioare. Setul aliased poate fi utilizat în cadrul clauzelor SELECT, FROM sau WHERE ale unei interogări ulterioare sau a unei ulterioare CTE în cadrul aceleiași operații WITH.

Operațiile RECURSIVE WITH nu sunt acceptate - setul aliased nu se poate referi la el însuși. Aliasul trebuie să fie unic în instrucțiunea WITH - nicio altă coloană sau alias de coloană nu poate fi denumită în mod similar, de exemplu. De asemenea, atunci când este utilizat într-o clauză FROM și i se dă un alias de tabel, aliasul de tabel trebuie să fie precedat de AS.

A CTE poate fi pus la dispoziția unei instrucțiuni DML sau DDL făcând ca instrucțiunea WITH să urmeze TABELUL CREATE. Instrucțiune AS, INSERT, UPDATE sau DELETE (nu o precedă).

Fiecare Definiție CTE într-o instrucțiune WITH este structurată după cum urmează:

Fiecare instrucțiune WITH poate conține una sau mai multe Definiții CTE, urmată de o instrucțiune SELECT, așa cum se arată aici:

Pentru a aplica CTE la o declarație INSERT, urmați clauza INSERT cu clauza WITH:

Repetare¶

Kinetica acceptă iterația pentru fiecare înregistrare dintr-un set de date în scopul creării unui set de rezultate cu 0 la N înregistrări de rezultate per înregistrare din setul original.

Această iterație poate fi variabilă, bazată pe o anumită valoare din cadrul fiecărei înregistrări, sau fixă, pe baza unei valori constante date.

repetare se realizează prin asocierea cu tabelul ITER virtual, după cum urmează:

Expresia & ltcolumn & gt poate fi înlocuită cu o constantă pentru fix repetare.

De exemplu, pentru a extrage toate literele individuale dintr-o coloană de cuvinte, cu o înregistrare pe literă extrasă (folosind iterația variabilă):

Pentru a duplica setul de cuvinte de cinci ori (folosind iterația fixă):

Pentru mai multe detalii, exemple și limitări, consultați Iterarea.

Constante¶

Fiecare tip de date are o sintaxă constantă literală asociată, care poate fi utilizată, de exemplu, pentru a insera valori de date constante în acele coloane.

Constante numerice¶

Tipurile de date întregi și cu virgulă mobilă pot fi fie citate singure, fie nu.

Constante bazate pe șiruri¶

Tipurile de date bazate pe șiruri ar trebui să fie ghilimelate.

Constante binare¶

Tipurile binare pot fi reprezentate în oricare dintre următoarele forme:

Constante de dată / oră¶

Kinetica acceptă valori necalificate de dată / oră citate unice, ANSI SQL și secvențe de evacuare ODBC în următoarele formate:

Tipul de date Nativ ANSI ODBC
Data „AAAA- [M] M- [D] D” DATA „AAAA-LL-ZZ”
Timp „[H] H24: MI: SS.mmm” TIMP „HH24: MI: SS.mmm”
DateTime 'AAAA- [M] M- [D] D [T | ] [H] H24: MI: SS.mmm [Z] ' TIMESTAMP „AAAA-LL-ZZ HH24: MI: SS.mmm”
Timestamp-ul „AAAA- [M] M- [D] D [H] H24: MI: SS.mmm” TIMESTAMP „AAAA-LL-ZZ HH24: MI: SS.mmm”

Expresii¶

Un expresie poate consta dintr-o constantă literală, un nume de coloană sau o funcție aplicată unei constante sau unui nume de coloană. A expresie compusă este o operație sau funcție aplicată uneia sau mai multor expresii.

Următoarele sunt acceptate operatori de expresie:

  • + plus
  • - scădere
  • * multiplicare
  • / Divizia
  • () grupare
  • || concatenare șir

Utilizați ghilimele duble pentru a specifica numele coloanelor într-o manieră sensibilă la majuscule.

Funcții condiționate¶

Evaluează expr: dacă este adevărat, returnează value_if_true în caz contrar, value_if_false

Când se utilizează direct o coloană întreagă, această funcție va interpreta valori diferite de zero ca Adevărat și valori zero ca fals.

Declarația de caz acționează ca o funcția scalară, dar are două forme mai complexe. Rețineți că pentru fiecare dintre aceste instrucțiuni CASE, expresiile valorice trebuie să fie toate de același tip de date sau convertibile.

În prima formă, fiecare WHEN este urmată de o expresie condițională a cărei expresie THEN corespunzătoare va avea valoarea sa returnată, dacă este adevărată. Controlul va continua prin fiecare CÂND până când se găsește o potrivire și se returnează valoarea corespunzătoare dacă nu se găsește o potrivire, valoarea expresiei ELSE va fi returnată sau nul, dacă nu există nicio clauză ELSE.

În a doua formă, se evaluează expresia CASE. O potrivire a acelui rezultat va fi încercată împotriva fiecărei expresii WHEN până când se găsește o potrivire și valoarea expresiei THEN corespunzătoare returnată dacă nu se găsește nicio potrivire, valoarea expresiei ELSE va fi returnată sau nul, dacă nu există nicio clauză ELSE.

Această a doua versiune de mai jos are o optimizare mai mare decât prima.

Funcții de conversie¶

CAST (expr AS [SQL _] & ltconv_type & gt)

Convertește expr în tip de date conv_type

Tipuri de conversie:

Numeric Şir Data / Ora
BIGINT CHAR (N) DATA
ZECIMAL (P, S) VARCHAR (N) DATETIME
DUBLA TIMP
PLUTI TIMESTAMP-UL
ÎNTREG TYPE_DATE
NUMERIC (P, S) TYPE_TIME
REAL TYPE_TIMESTAMP
SMINTINT
TINYINT
BIGINT NESEMNAT

Când se utilizează prefixul SQL_, UNSIGNED BIGINT devine SQL_UNSIGNED_BIGINT

Convertește data / ora expr într-un șir care corespunde formatului dat. Formatul trebuie să fie un șir literal - expresiile nu sunt acceptate în acest moment. Textul arbitrar poate fi injectat în șirul de format folosind ghilimele duble.

Șirul returnat va fi trunchiat la 32 de caractere.

Codurile de format valide includ:

Format Descriere
AAAA An de 4 cifre
DA An de 2 cifre
M Numărul lunii din an, fără zero zero [1 - 12]
MM Numărul lunii din an, cu zero zero [01 - 12]
LUN Abrevierea cu 3 caractere a lunii în cazul titlului, de exemplu, ianuarie
LUNĂ Numele complet al lunii, de exemplu, ianuarie
C Numărul de zile din lună, fără zero zero [1 - 31]
DD Numărul de zile din lună, cu zero zero [01 - 31]
DY Abrevierea cu 3 caractere a zilei săptămânii, de exemplu, vineri
ZI Numele complet al zilei săptămânii, de exemplu, vineri
H Alias ​​pentru H12
HH Alias ​​pentru HH12
H12 Ora din zi în format de 12 ore, fără zero în avans [0 - 11]
HH12 Oră a zilei în format de 12 ore, cu zero inițial [00 - 11]
H24 Ora din zi în format de 24 de ore, fără zero în avans [0 - 23]
HH24 Oră a zilei în format de 24 de ore, cu zero inițial [00 - 23]
MI Minutul orei [00 - 59]
SS Secunda minutului [00 - 59]
A.M Desemnator înainte sau după amiază [AM, PM]
P.M Alias ​​pentru AM

Funcții de dată / oră¶

Această secțiune cuprinde următoarele funcții:

    , care poate extrage părți ale expresiilor de dată / oră, poate converti înainte și înapoi între tipurile de date și returnează data / ora curentă, care poate efectua conversii de date / tipuri mai complexe

Funcții de bază pentru dată / oră¶

Adaugă suma integrală pozitivă sau negativă a intervalelor de dată / oră a unității la data / ora în expr

Următoarele intervale de dată / oră sunt acceptate pentru unitate:

Constant Descriere
'AN' Anul este modificat de valoarea intervalului (nu este afectat de anul bisect etc.)
'LUNĂ' Luna este modificată de valoarea intervalului și data ajustată dacă deversarea / debordarea are loc ziua ajustată la ultima zi a lunii calculate, dacă nu o zi valabilă pentru luna respectivă (de exemplu, 31 aprilie - & gt 30 aprilie)
'ZI' Ziua este modificată de valoarea intervalului (ora nu este afectată de lumina zilei economii de timp etc.) data este ajustată, dacă se produce revărsare / scurgere
'ORA' Ora este modificată de cantitatea intervalului (ora nu este afectată de lumina zilei economii de timp etc.) data este ajustată, dacă se produce revărsare / scurgere
'MINUT' Minutul este modificat în funcție de interval, data / ora sunt ajustate, dacă se produce revărsare / scurgere
'AL DOILEA' Al doilea este modificat în funcție de interval, data / ora sunt ajustate, dacă se produce revărsare / scurgere
„MILLISECOND” Milisecunda este modificată în funcție de interval, data / ora sunt ajustate, dacă se produce revărsare / scurgere
'SFERT' Luna este modificată de trei ori valoarea intervalului, indiferent de numărul de zile din lunile dintre ajustarea zilei efectuate la fel ca descrierea LUNĂ, dar numai în ultima lună (de exemplu, 31 ianuarie + 1 sfert va fi 30 aprilie, nu 28 aprilie din cauza februarie)
'SĂPTĂMÂNĂ' Ziua este modificată de 7 ori valoarea intervalului (timpul nu afectat de ora de vară etc.) luna și anul de amplificare sunt ajustate, dacă se produce revărsare / scurgere

Oricare dintre aceste tipuri de unități poate avea un prefix SQL_TSI_, de exemplu, atât DAY, cât și SQL_TSI_DAY sunt tipuri de unități valide pentru specificarea unui interval de zi

Extrage ziua săptămânii din expr [1 - 7]

Adăugă sau scade din data / ora expr cantitatea integrală a unităților de tip parte. Acest lucru reflectă comportamentul funcției TIMESTAMPADD, numai cu un format diferit și constante de parte date / oră diferite. Următoarele constante de dată / oră sunt acceptate pentru parte:

Returnează data următoarei zile a săptămânii, furnizată ca nume de zi în day_of_week, care apare după data dată

Câteva exemple, având în vedere că 2000-10-10 este un marţi:

Extrage trimestrul anului din expr [1 - 4]

Adaugă suma integrală pozitivă sau negativă a intervalelor de dată / oră a unității la data / ora în expr

Următoarele intervale de dată / oră sunt acceptate pentru unitate:

Nanosecunda este modificată în funcție de interval, data / ora sunt ajustate, dacă se produce revărsare / scurgere

Timpul este procesat la o precizie de milisecunde, astfel încât orice porțiune dintr-o cantitate cu o granularitate mai mare de 1.000.000 nanosecunde va fi ignorată (de exemplu, solicitarea adăugării de 1,234,567 nanosecunde va avea ca rezultat 1 milisecundă de fapt se adaugă)

Oricare dintre aceste tipuri de unități poate avea un prefix SQL_TSI_, de exemplu, atât DAY, cât și SQL_TSI_DAY sunt tipuri de unități valide pentru specificarea unui interval de zi

Calculează diferența dintre două expresii de dată / oră, returnând rezultatul ca diferență integrală în unitățile specificate mai precis, câte intervale între date / ore întregi ale unității de tip trebuie adăugate (sau scăzute din) încep să ajungă la sfârșitul egal (sau apropiați-vă cât mai mult posibil fără depășind-o) folosind tipurile și regulile specificate în TIMESTAMPADD.

Acest nu este simetric cu TIMESTAMPADD în toate cazurile, ca adăugare 1 LUNA până la 31 martie are ca rezultat 30 aprilie, dar TIMESTAMPDIFF în unitățile MONTH între acele două date este 0.

Funcții complexe de conversie dată / oră¶

Convertește data completă în milisecunde, deoarece valorile negative de epocă sunt acceptate

Convertește data completă în secunde, deoarece valorile negative ale epocii sunt acceptate

Convertește marca de timp în milisecunde de la epocă

Convertește data și ora date într-un format compus de dată / oră

Convertește anul și numărul săptămânii în milisecunde, deoarece valorile negative de epocă sunt acceptate

Convertește anul și numărul săptămânii în secunde de la epocă. Se acceptă valori negative. Fiecare nouă săptămână începe duminică la miezul nopții.

Funcții Geospațiale / Geometrie¶

  • Utilizați ST_ISVALID pentru a determina dacă un obiect de geometrie este valid. Funcțiile de mai jos funcționează cel mai bine cu obiecte geometrice valide.
  • Utilizați funcția REMOVE_NULLABLE pentru a elimina orice tipuri de coloane nulabile care ar putea rezulta din calcularea unei coloane derivate (de exemplu, ca în proiecții) utilizând una dintre funcțiile de mai jos.

Funcții scalare de performanță îmbunătățite¶

Funcțiile de mai jos compară coordonatele x și y cu obiectele geometrice (sau invers), crescând astfel performanța acestora în interogări. Fiecare dintre aceste funcții are o versiune geometrie-la-geometrie listată în secțiunea următoare.

Calculează distanța minimă dintre coordonatele x și y date și geom folosind tipul de soluție specificat. Tipuri de soluții disponibile:

  • 0 (implicit) - Euclidean returnează distanța euclidiană 2-D
  • 1 - Haversine returnează distanța minimă a sferei în metri
  • 2 - Vincenty returnează distanța minimă sferoidă în metri, mai precisă decât Haversine, dar performanță mai lentă

Notă: Dacă coordonatele x și y și geom se intersectează (verificați folosind ST_INTERSECTS), distanța va fi întotdeauna 0.

Returnează 1 (adevărat) dacă coordonatele x și y se află la distanța specificată de geom utilizând tipul de soluție specificat. Tipuri de soluții disponibile:

  • 0 (implicit) - Euclidean folosește grade pentru a calcula distanța
  • 1 - Sfera folosește contoare pentru a calcula distanța sferei
  • 2 - Sferoid folosește contoare pentru a calcula distanța sferoidă

Returnează 1 (adevărat) dacă coordonatele x și y se află la distanța specificată de caseta de delimitare a geom utilizând tipul de soluție specificat. Tipuri de soluții disponibile:

  • 0 (implicit) - Euclidean folosește grade pentru a calcula distanța
  • 1 - Sphere folosește contoare pentru a calcula distanța

Funcții scalare¶

Returnează aria geografiei geometrice date dacă este un POLIGON sau MULTIPOLIGON utilizând tipul de soluție specificat. Returnează 0 dacă tipul de geometrie de intrare este (MULTI) POINT sau (MULTI) LINESTRING. Tipuri de soluții disponibile:

  • 0 (implicit) - zona euclidiană 2D
  • 1 - suprafața curbată pe o sferă în metri pătrați
  • 2 - suprafața curbată pe un sferoid în metri pătrați

Returnează o geometrie care reprezintă toate punctele a căror distanță de geometria dată este mai mică sau egală cu raza de distanță dată. Unitățile de rază pot fi specificate de tipul soluției (valoarea implicită este în grade), iar raza este creată în stilul furnizat. Opțiunile de stil sunt specificate ca o listă de perechi cheie-valoare separate de gol, de exemplu, „quad_segs = 8 endcap = round”. Dacă este furnizată o listă de stil goală (''), vor fi utilizate setările implicite. Parametrul de stil trebuie specificat pentru a oferi un tip de soluție.

  • quad_segs - numărul de segmente utilizate pentru a aproxima un sfert de cerc (implicit este 8)
  • endcap - stilul endcap al tamponului (implicit este rotund) opțiunile sunt rotunde, plate (sau cap la cap) și pătrate
  • join - stilul de join al bufferului (implicit este rotund) opțiunile sunt rotunde, mitre (sau mitre) și conice
  • mitre_limit - limita raportului mitre exprimată ca număr în virgulă mobilă (mitre_limit este, de asemenea, acceptabilă)
  • 0 (implicit) - distanța 2D a razei euclidiene în grade
  • 1 - distanța razei de suprafață curbate pe o sferă în metri
  • 2 - distanța razei de suprafață curbate pe un sferoid în metri

Pentru a crea un tampon de 5 metri în jurul geom utilizând stilurile implicite: ST_BUFFER (geom, 5, '', 1). Pentru a crea un tampon de 5 picioare (convertirea picioarelor în metri) în jurul geom utilizând următoarele stiluri: ST_BUFFER (geom, 5 * 0.3048, 'quad_segs = 4 endcap = flat', 1)

Calculează PUNCTUL 2-D din geom1 cel mai apropiat de geom2 utilizând tipul de soluție specificat. Dacă geom1 sau geom2 este gol, se returnează un nul. Tipuri de soluții disponibile:

  • 0 (implicit) - Euclidean calculează cel mai apropiat punct folosind distanța Euclidiană 2-D
  • 1 - Haversine calculează cel mai apropiat punct folosind distanța sferei în metri
  • 2 - Vincenty returnează distanța minimă sferoidă în metri, mai precisă decât Haversine, dar performanță mai lentă

Returnează numai tipul specificat din colecția de geometrie dată. Tipul este un număr care se mapează cu următoarele:

Calculează distanța minimă dintre geometriile date, geom1 și geom2, utilizând tipul de soluție specificat. Tipuri de soluții disponibile:

  • 0 (implicit) - Euclidean returnează distanța euclidiană 2-D
  • 1 - Haversine returnează distanța minimă a sferei în metri
  • 2 - Vincenty returnează distanța minimă sferoidă în metri, mai precisă decât Haversine, dar performanță mai lentă

Notă: Dacă geom1 și geom2 se intersectează (verificați folosind ST_INTERSECTS), distanța va fi întotdeauna 0.

Calculează distanța minimă dintre punctele date, x1, y1 și x2, y2, utilizând tipul de soluție specificat. Tipuri de soluții disponibile:

  • 0 (implicit) - Euclidean returnează distanța euclidiană 2-D
  • 1 - Haversine returnează distanța minimă a sferei în metri
  • 2 - Vincenty returnează distanța minimă sferoidă în metri, mai precisă decât Haversine, dar performanță mai lentă

Returnează 1 (adevărat) dacă distanța maximă dintre geometriile geom1 și geom2 este mai mică sau egală cu distanța specificată una de cealaltă utilizând tipul de soluție specificat. Dacă geom1 sau geom2 este nul, se returnează 0 (false). Tipuri de soluții disponibile:

  • 0 (implicit) - Euclidean folosește grade pentru a calcula distanța
  • 1 - Sphere folosește contoare pentru a calcula distanța
  • 2 - Sferoidul folosește contoare pentru a calcula distanța, mai precisă decât sfera, dar performanță mai lentă

Returnează 1 (adevărat) dacă distanța minimă dintre geometriile geom1 și geom2 se află în distanța specificată una de cealaltă utilizând tipul de soluție specificat. Tipuri de soluții disponibile:

  • 0 (implicit) - Euclidean folosește grade pentru a calcula distanța
  • 1 - Sphere folosește contoare pentru a calcula distanța
  • 2 - Sferoidul folosește contoare pentru a calcula distanța, mai precisă decât sfera, dar performanță mai lentă

Returnează o elipsă folosind următoarele valori:

  • centerx - coordonata sau longitudinea x utilizate pentru a centra elipsa
  • centery - coordonata y sau latitudinea utilizată pentru a centra elipsa
  • înălțime - înălțimea elipsei (în grade)
  • width - lățimea elipsei (în grade)

Returnează 1 (adevărat) dacă geom1 se află la distanța specificată de caseta de delimitare a geom2 utilizând tipul de soluție specificat. Tipuri de soluții disponibile:

  • 0 (implicit) - Euclidean folosește grade pentru a calcula distanța
  • 1 - Sphere folosește contoare pentru a calcula distanța

Returnează versiunea tridimensională (de exemplu, coordonatele X, Y și Z) a geom, o geometrie furnizată sau un set de geometrii (de exemplu, prin GEOMETRYCOLLECTION sau numele coloanei WKT), folosind z ca nouă valoare z a geometriei. Valorile z furnizate pot fi, de asemenea, derivate dintr-o coloană numerică. Dacă nu este furnizat nici un z, se va aplica un 0.

Dacă este prevăzută o coloană WKT pentru geom și o coloană numerică pentru z, valorile z vor fi potrivite cu geometriile furnizate după rând în tabelul sursă. Dacă este prevăzută o geometrie singulară pentru geom și o coloană pentru z, versiunile tridimensionale ale geometriei furnizate vor fi returnate pentru fiecare valoare z găsită în coloana z furnizată. Dacă sunt furnizate coloane atât pentru geom, cât și pentru z, iar valorile nule sunt prezente în ambele coloane, rândul care conține valori nule va fi omis în rezultate.

Returnează o reprezentare de șir hash a geometriei geometrice date cu precizie specificată (lungimea șirului de geohash). Cu cât este mai mare precizia, cu atât este mai precis hashul. În mod implicit, precizia este setată la 20, max pentru precizie este de 32. Returnează nul dacă geom este o geometrie goală.

Valoarea returnată va fi nu să fie un geohash al geometriei exacte, dar un geohash al centrului geometriei date

Returnează tipul ID-ului de la geom. Tipuri și mapări ID:

  • PUNCT = 0
  • LINESTRING = 1
  • POLIGON = 3
  • MULTIPOINT = 4
  • MULTILINESTRING = 5
  • MULTIPOLIGON = 6
  • GEOMETRYCOLLECTION = 7

Creează un MULTIPOLIGON care conține o grilă de hexagoane între punctele minime și maxime date ale unei casete de delimitare. Punctul minim nu poate fi mai mare sau egal cu punctul maxim. Mărimea (în metri) a fețelor hexagonale individuale este determinată de partea celulei. Side_celula nu poate fi mai mare decât lățimea sau înălțimea casetei de delimitare. Numărul maxim de celule care pot fi produse este determinat de limită, un număr întreg pozitiv. Valori acceptate pentru limită:

  • -1 - Nicio limită a numărului de celule generate (limitată efectiv de memoria sistemului)
  • 0 (implicit) - 100 de milioane de celule
  • & ltn & gt - Limită personalizată de n celule

Dacă cererea de limită personalizată specifică mai multe celule (pe baza casetei de delimitare și a celulei) decât limita de sistem, se returnează un nul.

Returnează lungimea geometriei dacă este un LINESTRING sau MULTILINESTRING. Returnează 0 dacă un alt tip de geometrie, de exemplu, POINT, MULTIPOINT etc. GEOMETRYCOLLECTIONs sunt, de asemenea, acceptate, dar limitarea de tip menționată mai sus se aplică, colecția va fi căutată recursiv pentru LINESTRINGs și MULTILINESTRINGs și se returnează sumarea tuturor tipurilor de geometrie acceptate (tipuri neacceptate) sunt ignorate). Tipuri de soluții disponibile:

  • 0 (implicit) - 2D lungime euclidiană
  • 1 - lungime pe o sferă în metri
  • 2 - lungimea pe un sferoid în metri

Returnează LINESTRING care reprezintă cea mai lungă linie de puncte dintre cele două geometrii. Dacă sunt găsite cele mai lungi linii, este returnată doar prima linie găsită. Dacă geom1 sau geom2 sunt goale, se returnează nul. Tipuri de soluții disponibile:

  • 0 (implicit) - Euclidean folosește grade pentru a calcula cea mai lungă linie
  • 1 - Sphere folosește contoare pentru a calcula cea mai lungă linie
  • 2 - Sferoidul folosește contoare pentru a calcula cea mai lungă linie, mai precisă decât sfera, dar performanță mai lentă

Creează un LINESTRING din geom dacă este un MULTIPOINT. Dacă geom este un POINT, trebuie să existe cel puțin un alt POINT pentru a construi un LINESTRING. Dacă geom este un LINESTRING, acesta trebuie să aibă cel puțin două puncte. Returnează nul dacă geom nu este un POINT, MULTIPOINT sau LINESTRING

Această funcție poate fi destul de costisitoare din punct de vedere al performanței

Creează un PUNCT la coordonata dată

Această funcție poate fi destul de costisitoare din punct de vedere al performanței

Creează un POLIGON din geom. Intrările trebuie să fie LINESTRING-uri închise

Această funcție poate fi destul de costisitoare din punct de vedere al performanței

Returnează distanța maximă dintre geometriile geom1 și geom2 date folosind tipul de soluție specificat. Dacă geom1 sau geom2 sunt goale, se returnează nul. Tipuri de soluții disponibile:

  • 0 (implicit) - returnează distanța maximă 2-D euclidiană
  • 1 - Sfera returnează distanța maximă în metri
  • 2 - Sferoidul returnează distanța maximă în metri, mai precisă decât sfera, dar performanță mai lentă

Creează mai multe tampoane la distanța specificată în jurul geometriei geom date. Distanțele multiple sunt specificate ca valori separate prin virgule într-o matrice, de exemplu, [10,20,30]. Valorile valide pentru exterior sunt:

  • FULL - indică faptul că tampoanele se vor suprapune sau acoperi geometria geografică dată. Aceasta este valoarea implicită.
  • OUTSIDE_ONLY - indică faptul că tampoanele vor fi inele în jurul geometriei geografice date.

Returnează perimetrul geometriei dacă este un POLIGON sau MULTIPOLIGON. Returnează 0 dacă un alt tip de geometrie, de exemplu, POINT, MULTIPOINT, LINESTRING sau MULTILINESTRING. GEOMETRYCOLLECTIONs sunt, de asemenea, acceptate, dar limitarea de tip menționată mai sus se aplică în continuare, colecția va fi căutată recursiv pentru POLIGONI și MULTIPOLIGONI, iar suma tuturor tipurilor de geometrie acceptate este returnată (tipurile neacceptate sunt ignorate). Tipuri de soluții disponibile:

  • 0 (implicit) - 2D lungime euclidiană
  • 1 - lungime pe o sferă în metri
  • 2 - lungimea pe un sferoid în metri

Returnează un POINT folosind geohash-ul dat cu o precizie setată de precizia întreagă. Dacă este specificată precizia, funcția va folosi cât mai multe caractere în hash egale cu precizia pentru a crea geometria. Dacă nu este specificată nicio precizie, se utilizează întreaga lungime a geohash-ului.

POINT returnat reprezintă centrul casetei de delimitare a geohash-ului

Creează un MULTIPOLIGON care conține o grilă în formă de pătrat de puncte între punctele minime și maxime date ale unei casete de delimitare. Punctul minim nu poate fi mai mare sau egal cu punctul maxim. Distanța dintre puncte (în metri) este determinată de side_celulă. Side_celula nu poate fi mai mare decât lățimea sau înălțimea casetei de delimitare. Numărul maxim de celule care pot fi produse este determinat de limită, un număr întreg pozitiv. Valori acceptate pentru limită:

  • -1 - Nicio limită a numărului de celule generate (limitată efectiv de memoria sistemului)
  • 0 (implicit) - 100 de milioane de celule
  • & ltn & gt - Limită personalizată de n celule

Dacă cererea de limită personalizată specifică mai multe celule (pe baza casetei de delimitare și a celulei) decât limita de sistem, se returnează un nul.

Returnează geom-ul dat, dar segmentat n de ori în funcție de modul în care distanța max_segment_length (în unități bazate pe tipul soluției) împarte geometria originală. Noua geom este garantată să aibă segmente care sunt mai mici decât max_segment_length. Rețineți că POINT-urile nu pot fi segmentate. Geometriile colecției (GEOMETRYCOLLECTION, MULTILINESTRING, MULTIPOINT etc.) pot fi segmentate, dar numai părțile individuale vor fi segmentate, nu colecția în ansamblu. Tipuri de soluții disponibile:

  • 0 - Euclidean folosește grade pentru a calcula distanța
  • 1 (implicit) - Sphere folosește contoare pentru a calcula distanța

Returnează o versiune simplificată a geomului dat utilizând un algoritm pentru a reduce numărul de puncte cuprinzând o geometrie dată, încercând în același timp să păstreze cel mai bine forma originală. Toleranța dată determină cât de mult se simplifică geometria. Cu cât este mai mare toleranța, cu atât geometria returnată este mai simplă. Unele găuri ar putea fi eliminate și unele poligoane nevalide (de exemplu, auto-intersectate etc.) ar putea fi prezente în geometria returnată. Numai (MULTI) LINESTRING și (MULTI) POLIGONI pot fi simplificate, inclusiv cele găsite în GEOMETRYCOLLECTIONs, orice alte obiecte geometrice vor fi returnate nesimplificate.

Toleranța trebuie furnizată în aceleași unități ca și datele. De regulă, o toleranță de 0,00001 ar corespunde la aproximativ un metru.

Returnează o versiune simplificată a geomului dat utilizând un algoritm pentru a reduce numărul de puncte cuprinzând o geometrie dată în timp ce încearcă să păstreze cel mai bine forma originală. Toleranța dată determină cât de mult se simplifică geometria. Cu cât este mai mare toleranța, cu atât geometria returnată este mai simplă. Nu vor fi îndepărtate găuri și nu vor fi prezente poligoane nevalide (de exemplu, auto-intersectate etc.) în geometria returnată. Numai (MULTI) LINESTRING și (MULTI) POLIGONI pot fi simplificate, inclusiv cele găsite în GEOMETRYCOLLECTIONs, orice alte obiecte geometrice vor fi returnate nesimplificate.

Toleranța trebuie furnizată în aceleași unități ca și datele. De regulă, o toleranță de 0,00001 ar corespunde la aproximativ un metru.

Creează un MULTIPOLIGON care conține o grilă de pătrate între punctele minime și maxime date dintr-o casetă de delimitare. Punctul minim nu poate fi mai mare sau egal cu punctul maxim. Mărimea (în metri) a laturilor fiecărui pătrat este determinată de lateralul_celulă. Side_celula nu poate fi mai mare decât lățimea sau înălțimea casetei de delimitare. Numărul maxim de celule care pot fi produse este determinat de limită, un număr întreg pozitiv. Valori acceptate pentru limită:

  • -1 - Nicio limită la numărul de celule generate (limitată efectiv de memoria sistemului)
  • 0 (implicit) - 100 de milioane de celule
  • & ltn & gt - Limită personalizată de n celule

Dacă cererea de limită personalizată specifică mai multe celule (pe baza casetei de delimitare și a celulei) decât limita de sistem, se returnează un nul.

Creează un MULTIPOLIGON care conține o grilă de triunghiuri între punctele minime și maxime date ale unei casete de delimitare. Punctul minim nu poate fi mai mare sau egal cu punctul maxim. Mărimea (în metri) a laturilor triunghiurilor individuale este determinată de partea celulei. Side_celula nu poate fi mai mare decât lățimea sau înălțimea casetei de delimitare. Numărul maxim de celule care pot fi produse este determinat de limită, un număr întreg pozitiv. Valori acceptate pentru limită:

  • -1 - Nicio limită a numărului de celule generate (limitată efectiv de memoria sistemului)
  • 0 (implicit) - 100 de milioane de celule
  • & ltn & gt - Limită personalizată de n celule

Dacă cererea de limită personalizată specifică mai multe celule (pe baza casetei de delimitare și a celulei) decât limita de sistem, se returnează un nul.

Returnează forma binară (WKB) a unei geom (WKT)

Această funcție poate fi utilizată numai în interogări împotriva unui singur tabel.

Funcții de agregare¶

Funcţie Descriere
ST_AGGREGATE_COLLECT (geom) Alias ​​pentru ST_COLLECT_AGGREGATE ()
ST_AGGREGATE_INTERSECTION (geom) Alias ​​pentru ST_INTERSECTION_AGGREGATE ()
ST_COLLECT_AGGREGATE (geom) Returnează o GEOMETRYCOLLECTION care cuprinde toate geometriile găsite în setul de geom. Orice geometrie MULTI * va fi împărțită în geometrii singulare separate, de exemplu, MULTIPOINT ((0 0), (1 1)) ar fi împărțit în POINT (0 0) și POINT (1 1) în rezultate, același lucru este valabil pentru elemente a unei GEOMETRYCOLLECTION găsite în geom, unde o GEOMETRYCOLLECTION în cadrul setului geom furnizat va fi, de asemenea, analizat, aplatizând-o efectiv și adăugând geometriile individuale la GEOMETRYCOLLECTION rezultată. Orice geometrie goală din geom este ignorată chiar dacă face parte dintr-o COLECȚIE GEOMETRICĂ. Orice WKT duplicat va fi păstrat.
ST_DISSOLVE (geom) Dizolvă toate geometriile dintr-un set dat într-o singură geometrie. Rețineți că geometria unică rezultată poate fi totuși un grup de geometrii necontigue, dar reprezentată ca un singur grup, de exemplu, o GEOMETRYCOLLECTION. Cea mai bună performanță atunci când este utilizată împreună cu geometrii adiacente
ST_DISSOLVEOVERLAPPING (geom) Dizolvă toate geometriile dintr-un set dat într-o singură geometrie. Rețineți că geometria unică rezultată poate fi totuși un grup de geometrii necontigue, dar reprezentată ca un singur grup, de exemplu, o GEOMETRYCOLLECTION. Cea mai bună performanță atunci când este utilizată împreună cu geometrii suprapuse
ST_INTERSECTION_AGGREGATE (geom) Returnează un POLIGON sau MULTIPOLIGON care cuprinde porțiunea partajată între toate geometriile găsite în setul de geom. Returnează o GEOMETRYCOLLECTION goală dacă nu există o porțiune partajată între toate geometriile. Echivalent funcțional cu ST_INTERSECTION (ST_INTERSECTION (ST_INTERSECTION (geom1, geom2), geom3),. GeomN).
ST_LINESTRINGFROMORDEREDPOINTS (x, y, t) Returnează un LINESTRING care reprezintă o „cotă” a punctelor date (x, y) ordonate de coloana de sortare dată t (de ex., Un timestamp sau un număr de ordine). Dacă oricare dintre valorile din coloanele specificate este nulă, „punctul zero” va fi lăsat în afara LINESTRING-ului rezultat. Dacă în tabelul sursă există doar un "punct" non-nul, se returnează un POINT. Dacă nu există „puncte & quot” nule în tabelul sursă, se returnează un element nul
ST_LINESTRINGFROMORDEREDPOINTS3D (x, y, z, t) Returnează un LINESTRING care reprezintă o „cotă” a punctelor 3D date (x, y, z) ordonate de coloana de sortare dată t (de ex., Un timestamp sau un număr de ordine). Dacă oricare dintre valorile din coloanele specificate este nulă, „punctul zero” va fi lăsat în afara LINESTRING-ului rezultat. Dacă în tabelul sursă există doar un „punct negativ” care nu este nul, se returnează un POINT. Dacă nu există „puncte & quot” nule în tabelul sursă, se returnează un element nul
ST_POLYGONIZE (geom) Returnează o GEOMETRICOLECȚIE care conține POLIGONI care cuprind LINESTRING-ul (MULTI) furnizat (e). Geometriile (MULTI) POINT și (MULTI) POLIGON sunt ignorate atunci când se calculează GEOMETRICOLECȚIA rezultată. Dacă un POLIGON valid nu poate fi construit din LINESTRING-ul (MULTI) furnizat (e), o GEOMETRYCOLLECTION goală va fi returnată.

Funcții matematice¶

Rotunjiri expr la cel mai apropiat număr zecimal cu scară zecimale când scara este un număr pozitiv rotunde la cel mai apropiat număr astfel încât rezultatul are - (scară) zerouri la stânga punctului zecimal atunci când scara este negativă utilizați scara de la 0 la rotunjire la cel mai apropiat număr întreg. Exemple:

Determină dacă un număr este pozitiv, negativ sau zero returnează una dintre următoarele trei valori:

Rundele se execută până la cel mai apropiat număr zecimal cu zecimale la scară, urmând aceleași reguli ca ROUND. Exemple:

Funcții nule¶

Unele dintre următoarele funcții nule necesită ca parametrii să fie de tipuri de date convertibile. Rețineți că cu lățime limitată (charN) & amp lățime nelimitată (non-charN) tipurile de șiruri nu sunt convertibile.

Funcţie Descriere
COALESCE (expr_a,. Expr_N) Returnează valoarea primei expresii care nu este nul începând cu expr_a și terminând cu expr_N. Dacă toate sunt nul, apoi nul este returnat. Toate expresiile trebuie să fie de același tip de date sau convertibile.
IFNULL (expr_a, expr_b) Returnează expr_a dacă nu este nul în caz contrar, returnează expr_b. Ambele ar trebui să fie de același tip de date sau convertibile.
ISNULL (expr) Returnează 1 dacă expr este nul în caz contrar, returnează 0
IS_NULL (expr) Sinonim cu ISNULL (expr)
NULLIF (expr_a, expr_b) Se intoarce nul dacă expr_a este egal cu expr_b în caz contrar, returnează valoarea expr_a ambele expresii ar trebui să fie de același tip de date sau convertibile.
NVL (expr_a, expr_b) Alias ​​pentru IFNULL
NVL2 (expr, value_if_not_null, value_if_null) Evaluează expr: dacă nu nul, returnează value_if_not_null dacă nul, returnează value_if_null. Atât value_if_not_null cât și amp value_if_null ar trebui să fie de același tip de date ca expr sau implicit convertibile.
REMOVE_NULLABLE (expr) Alias ​​pentru ZEROIFNULL
ZEROIFNULL (expr) Înlocuiește nul valori cu valori adecvate bazate pe tipul de coloană (de exemplu, 0 dacă coloană numerică, un șir gol dacă charN coloană etc.). De asemenea, elimină proprietatea coloanei care poate fi anulată dacă este utilizată pentru a calcula o coloană derivată.

Funcții de șir¶

Aceste funcții vor funcționa numai cu câmpuri de șir cu lățime fixă ​​(char1 - char256).

Efectuează o concatenare de șiruri de expr_a și amp expr_b utilizează apeluri CONCAT imbricate pentru a concatena mai mult de două șiruri

Dimensiunea câmpului rezultat al oricărui CONCAT va fi a charN câmp suficient de mare pentru a menține câmpurile concatenate, de exemplu, concatenarea unei coloane char32 și a unei coloane char64 va avea ca rezultat o coloană char128. Coloanele de tip char256 nu pot fi utilizate cu CONCAT.

Returnează concatenarea expr_a și expr_b, trunchiată la dimensiunea maximă a expr_a. Pentru coloane, această dimensiune este explicită pentru constantele de șir, aceasta va fi cea mai mică charN tip care poate conține șirul expr_a.

(char8 este minim dimensiunea necesară pentru păstrare ABC123 valoare, deci rezultatul este trunchiat la 8 caractere)

(char8 este minim dimensiunea necesară pentru păstrare ABCD1234 valoare, deci nu caractere suplimentare poate fi concatenat)

Returnează octetul adresei IP date în expr la poziția specificată de part_num. Valorile valide part_num sunt constante de la 1 la 4.

Stânga tamponează șirul base_expr dat cu șirul pad_expr la lungimea dată de caractere. Dacă baza_expr este mai lungă decât lungimea, valoarea returnată este scurtată la caractere de lungime. Dacă lungimea este mai mare de 256, aceasta va fi trunchiată la 256.

Returnează expr cu ordinea caracterelor inversate.

Dreapta tamponează șirul base_expr dat cu șirul pad_expr la lungimea dată de caractere. Dacă baza_expr este mai lungă decât lungimea, valoarea returnată este scurtată la caractere de lungime. Dacă lungimea este mai mare de 256, aceasta va fi trunchiată la 256.

Returnează o valoare soundex din expr. Numai primul cuvânt din șir va fi luat în considerare în calcul.

Acesta este algoritmul folosit de majoritatea limbajelor de programare.

Împarte expr în grupuri delimitate de caracterul delim și returnează grupul de împărțire group_num. Dacă group_num este pozitiv, grupurile vor fi numărate de la începutul expr dacă sunt negative, grupurile vor fi numărate de la sfârșitul expr mergând înapoi. Doi delimitatori consecutivi vor duce la adăugarea unui șir gol la lista grupurilor selectabile. Dacă nu există instanțe de delimitare în expr, întregul șir este disponibil la grupul 1 (și -1). Grupul 0 nu returnează nimic.

Compară expr_a cu expr_b într-un fel lexicografic

Funcții utilizator / securitate¶

Returnează dacă utilizatorului curent (sau utilizatorului dat, dacă este specificat) i sa atribuit rolul dat, direct sau indirect:

Mască lungimea caracterelor expr, începând de la poziția identificată prin start, cu * caractere (sau caracterul specificat în caractere):

Funcții de agregare¶

Folosit în principal cu ROLLUP, CUBE și SETURI DE GRUPARE, pentru a distinge sursa nul valorile dintr-un set de rezultate agregate, returnează dacă expr face parte din setul de agregare utilizat pentru a calcula valorile dintr-un rând dat de set de rezultate. Returnează 0 dacă expr face parte din setul de agregare al rândului, 1 dacă expr nu este (adică agregarea a avut loc în toate valorile expr).

De exemplu, într-o operație ROLLUP (A), vor exista două rânduri potențiale cu nul în setul de rezultate pentru coloana A. Un rând va conține nul valorile lui A agregate împreună, iar celălalt va conține nul, dar să fie o agregare pe întregul tabel, indiferent de valorile A. În acest caz, GROUPING (A) va returna 0 pentru nul valorile A agregate împreună (precum și toate celelalte valori A grupate) și 1 pentru rândul rezultat din agregarea tuturor valorilor A.

Funcții de grupare¶

Funcţie Descriere
ROLLUP (expr) Calculează n + 1 agregate pentru n numărul de coloane din expr
CUBE (expr) Calculează 2 n agregate pentru n numărul de coloane din expr
SETURI DE GRUPARE (expr) Calculează agregate pentru orice agregate date în expr, inclusiv ROLLUP () și CUBE ()

Funcții de distribuție¶

Funcțiile de distribuție sunt expresii de coloană care afectează natura fragmentată / replicată a setului de rezultate al unei interogări date. Poate fi necesar să forțați un set de rezultate să fie distribuit într-un anumit mod pentru ca o operațiune ulterioară pe acel set de rezultate să fie performant.

Folosirea acestor funcții va împiedica orice detașare automată a datelor pentru a permite interogarea să aibă succes. Utilizați numai atunci când este cunoscut un plan de interogare mai bun (în ceea ce privește distribuirea datelor) decât oricare ar putea elabora sistemul.

Forțați setul de rezultate să fie împărțit pe coloanele date. Aceasta va suprascrie orice stare de replicare derivată implicit sau definită în mod explicit pe care ar fi avut-o tabelul.

Coloanele listate în lista de coloane trebuie să apară și în lista SELECT.

Exemplu de fragmentare¶

De exemplu, o interogare pentru toți angajații și angajații lor total gestionați, inclusiv angajații care nu gestionează pe nimeni, ar putea angaja o UNIUNE ca aceasta:

În acest exemplu, tabelul angajaților este împărțit pe id. De la prima parte a agregatelor UNION pe manager_id, rezultatul va fi reprodus. A doua parte a UNIUNII nu face agregare și include cheia de fragment în lista SELECT, rezultatul va fi ascuțit.

Având în vedere că o limitare a operațiunilor UNION este că ambele părți ale UNION trebuie distribuite în același mod, această interogare va eșua, cu următorul mesaj:

Pentru a rezolva această limitare, a funcția de distribuție poate fi folosit.

O opțiune este să ciob prima parte a UNIUNII care se potrivește cu a doua parte:

Aici funcția de distribuție KI_SHARD_KEY este folosit pentru a face noua coloana manager_id selectată cheie ciob pentru prima parte a UNIUNII. Acum cheie ciob pentru prima parte a UNION (manager_id) se aliniază cu cheie ciob pentru a doua parte (id), iar interogarea reușește. Rețineți utilizarea KI_MATCH_COLUMN, care aliniază listele de coloane selectate de fiecare parte a UNION. Fără această potrivire funcția de distribuție, UNIUNEA pare să combine trei coloane din prima parte a interogării în două coloane în partea a doua și ar eșua.

Coloana manager_id trebuie să existe în lista SELECT pentru ca funcția KI_SHARD_KEY să o desemneze ca fiind cheie ciob.

Exemplu de replicare¶

Suportul SQL nu se extinde în prezent la crearea de tabele replicate din rezultatele interogărilor folosind CREATE TABLE. LA FEL DE . De exemplu, următoarele vor eșua:

Cu toate acestea, a replicat tabelul poate fi creat folosind CREATE TABLE. AS prin forțarea setului de rezultate să fie deja replicat folosind KI_REPLICATE () funcția de distribuție. Acest lucru va reuși să creeze un replicat versiunea tabelului angajaților:

Predicati¶

Predicat sunt utilizate în general într-o clauză SQL WHERE pentru interogarea înregistrărilor. Ei compară valorile a două sau mai multe expresii ori de câte ori o înregistrare îndeplinește criteriile definite într-un clauza predicat va fi marcat ca eligibil pentru a face parte din setul de rezultate ale interogării. Dacă se întrunește pe toate propoziții predicate definit într-o interogare, acesta va fi returnat în setul de rezultate.

Un singur clauza predicat poate folosi un simplu operator predicat pentru a compara valorile a doi expresii sau o mai complexă clauza predicat formă. A propoziție de predicat compus folosește un operator predicat compus a lega împreună multiple propoziții predicate pentru a rafina în continuare un set de rezultate.

Șirurile cu lățime nelimitată (non-charN) pot fi utilizate numai în cadrul unor predicate bazate pe egalitate, de ex. =, IN etc.

Operatori predicati¶

  • = egalitate
  • ! = sau & lt & gt inegalitate
  • & lt mai puțin decât
  • & lt = mai mic sau egal cu
  • & gt mai mare ca
  • & gt = mai mare sau egal cu

Clauze predicate¶

În următoarea listă de propoziții predicate, ref_expr este expresia de referință pentru a aplica predicatul pentru a observa că EXISTS nu are expresie de referință.

Potrivește înregistrările în care expresia de referință ref_expr corespunde (sau NU) se potrivește cu valoarea șirului match_expr. Meciul este unul literal, cu următoarele excepții:

Potrivește înregistrările în care instrucțiunea SELECT returnează 1 sau mai multe înregistrări.

Această clauză are utilitate limitată, deoarece subcercetările corelate, pe a căror valoare reală se bazează, nu sunt susținute în acest moment.

Operatori de predicate compuse¶

Operator predicat Descriere
& ltpred_a & gt ȘI & ltpred_b & gt Se potrivește înregistrărilor în care sunt pred_a și amp pred_b Adevărat
& ltpred_a & gt SAU & ltpred_b & gt Potrivește înregistrările în care se află pred_a sau pred_b Adevărat
NU & ltpred_b & gt Potrivește înregistrările unde este pred fals

Subconsultări¶

Subcercetări necorelate¶

Acestea sunt subinterogări care sunt autonome, în sensul că pot fi executate independent de interogarea din jur.


Funcțiile ferestrei

Calculează rangul relativ al rândului curent: (numărul de rânduri precedente sau egale cu rândul curent) / (rânduri totale).

Calculează rangul rândului curent fără goluri, această funcție numără grupurile de peer.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este primul rând al cadrului ferestrei.

Returnează valul evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează valul evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează valul evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează valul evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează valul evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează valul evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează valul evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează valul evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează valul evaluat la rândul anterior din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri înainte de rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la rândul care este ultimul rând al cadrului ferestrei.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din partiția rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează val evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează val evaluat la următorul rând din cadrul partiției rândului curent dacă nu există un astfel de rând, în schimb returnează nul.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa dacă nu există un astfel de rând, în schimb returnează nul. n este evaluat în raport cu rândul curent.

Returnează valul evaluat la rândul care este n rânduri după rândul curent din partiția sa, dacă nu există un astfel de rând, în schimb, returnează valoarea implicită (care trebuie să fie de același tip ca val). Atât n cât și implicit sunt evaluate în raport cu rândul curent.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Returnează valul evaluat la rândul care este al n-lea rând al cadrului ferestrei (numărând de la 1) nul dacă nu există un astfel de rând.

Calculează un număr întreg cuprins între 1 și n, împărțind partiția cât mai egal posibil.

Calculează rangul relativ al rândului curent: (rang - 1) / (rânduri totale - 1).

Calculează rangul rândului curent cu goluri identice cu numărul_ rând al primului său peer.

Calculează numărul rândului curent din partiția sa, numărând de la 1.


Priveste filmarea: . Mafia - Un 2 Si Trei De 0 feat. ViLLy Prod. Tata Vlad Videoclip