Funcţii comune A-C D-G H-L M-Q R-Z Funcţii trigonometrice
SQL-99 Scalar abs ( expresie_numerică ) Returnează valoarea absolută a "expresie_numerică". Valorile negative sunt returnate ca valori pozitive. Exemplu: abs ( 15 ) Rezultat: 15 Exemplu: abs ( -15 ) Rezultat: 15 bit_length bit_length ( expresie_şir ) Returnează numărul de octeţi din "expresie_şir". distribuire ( expresie , specificare_tip de date ) Transformă "expresia" într-un tip de date specificat. Unele tipuri de date permit specificarea lungimii şi a preciziei. Aveţi grijă ca ţinta să fie de tipul şi dimensiunea adecvate. Pentru "specificaţie_tipdate" se pot utiliza următoarele tipuri de date: character, varchar, char, numeric, decimal, integer, bigint, smallint, real, float, date, time, timestamp, time with time zone, timestamp with time zone şi interval. La conversia tipului la un tip de interval, trebuie specificat unul dintre următoarele calificative de interval: year, month sau year to month pentru tipul de date interval An la lună; day, hour, minute, second, day to hour, day to minute, day to second, hour to minute, hour to second sau minute to second pentru tipul de date interval Zi la secundă. Note: la transformarea unei valori de tip timestamp în tipul date, fragmentul orar al valorii amprentă de timp este ignorat. La transformarea unei valori de tip timestamp în tipul time, fragmentul de dată al amprentă de timp este ignorat. La transformarea unei valori de tip date în tipul timestamp, componentele orei din amprenta de timp sunt setate la zero. La transformarea unei valori de tip time în tipul timestamp, componenta datei este setată la data curentă a sistemului. Este incorectă transformarea unui interval de tip de date în altul (de exemplu, deoarece numărul zilelor dintr-o lună este variabil). Reţineţi că puteţi specifica numărul cifrelor numai pentru calificativul iniţial, de exemplu YEAR(4) TO MONTH, DAY(5). Erorile vor fi raportate dacă tipul şi dimensiunea ţintei nu sunt compatibile cu tipul şi dimensiunea sursei. Exemplu: cast ( '123' , integer ) Rezultat: 123 Exemplu: cast ( 12345 , varchar ( 10 ) ) Rezultat: un şir conţinând 12345 char_length ( expresie_şir ) Returnează numărul de caractere logice din "expresie_şir". Numărul de caractere logice poate fi diferit de numărul de octeţi din anumite caracteristici locale din Asia de Est. Exemplu: char_length ( 'Canada' ) Rezultat: 6 character_length ( expresie_şir ) Returnează numărul de caractere din "expresie_şir". Exemplu: character_length ( 'Canada' ) Rezultat: 6 current_date current_date Returnează o valoare de dată care reprezintă data curentă a computerului pe care rulează programul bază de date. Exemplu: current_date Rezultat: 2003-03-04 current_time current_time Returnează o oră cu valoarea fusului orar, care reprezintă ora curentă a computerului pe care se execută software-ul bazei de date, dacă baza de date acceptă această funcţie. Altfel, necesită ora curentă a calculatorului care rulează software IBM® Cognos® BI. Exemplu: current_time Rezultat: 16:33:11.354+05:00 current_timestamp current_timestamp Returnează o dată-oră cu valoarea fusului orar, care reprezintă ora curentă a computerului pe care se execută software-ul bazei de date, dacă baza de date acceptă această funcţie. Altfel, necesită ora curentă a calculatorului care rulează software IBM® Cognos® BI. Exemplu: current_timestamp Rezultat: 2003-03-03 16:40:15.535+05:00 localtime localtime Returnează o valoare de oră care reprezintă ora curentă a computerului pe care rulează programul bază de date. Exemplu: localtime Rezultat: 16:33:11 localtimestamp localtimestamp Returnează o valoare dată-oră care reprezintă amprenta de timp curentă a computerului pe care rulează programul bază de date. Exemplu: localtimestamp Rezultat: 2003-03-03 16:40:15 extract ( parte_dată , expresie_dată-oră ) Returnează un număr întreg care reprezintă valoarea de parte_dată (year, month, day, hour, minute, second, epoch) în "expresia_dată-oră". Exemplu: extract ( an , 2003-03-03 16:40:15.535 ) Rezultat: 2003 Exemplu: extract ( oră , 2003-03-03 16:40:15.535 ) Rezultat: 16 Example: extract ( epoch , 2014-11-23 ) Rezultat: 1416718800 lower ( expresie_şir ) Returnează "expresie_şir" cu toate literele mari convertite în litere mici. Exemplu: lower ( 'ABCDEF' ) Rezultat: abcdef mod ( expresie1_întreg , expresie2_întreg ) Returnează restul împărţirii (modulo) "expresie1_întreg" la "expresie2_întreg". "Expresie2_întreg" nu trebuie să fie zero, altfel se creează o condiţie de excepţie. Exemplu: mod ( 20 , 3 ) Rezultat: 2 occurrences_regex ( expresie_regex , expresie_şir [ , expresie_întreg [ , expresie_steguleţe ]] ) Returnează valoarea întreagă care reprezintă numărul de apariţii ale expresiei regulate "regex_expression" în "expresie_şir". Căutarea începe la poziţia "expresie_întreg", care are o valoare implicită de 1. Steguleţele pentru setarea opţiunilor pentru interpretarea expresiei regulate sunt specificate de "expresie_steguleţe". Literele individuale sunt utilizate pentru a defini steguleţele, cu valorile valide 's', 'm', 'i' şi 'x'. Exemplu: occurrences_regex ( '.er' ; 'Flicker Lantern') Rezultat: 2 octet_length ( expresie_şir ) Returnează numărul de octeţi din "expresie_şir". : octet_length ( 'ABCDEF' ) Rezultat: 6 : octet_length ( '' ) Rezultat: 0 position ( expresie1_şir ; expresie2_şir ) Returnează un întreg reprezentând poziţia de început a "expresiei1_şir" din "expresie2_şir' sau 0 dacă "expresia1_şir" nu este găsită. Exemplu: position ( 'C' , 'ABCDEF' ) Rezultat: 3 Exemplu: position ( 'H' , 'ABCDEF' ) Rezultat: 0 position_regex ([ pornire|după ]  regex_expression , expresie_şir [ , expresie1_întreg [ , expresie2_întreg [ , expresie_steguleţe ]]] ) Returnează valoarea întreagă care reprezintă poziţia de început sau de terminare a subşirului în "expresie_şir" care se potriveşte expresie regulată "regex_expression". Căutarea începe la poziţia "expresie1_întreg", care are o valoare implicită de 1. Apariţia modelului de căutare este specificat de "expresie2_întreg", care are o valoare implicită de 1. Opţiunea de returnare, specificată de primul argument, specifică ce este returnat în relaţie cu apariţia. Dacă specificaţi "start", este returnată poziţia primului caracter al apariţiei. Dacă specificaţi "după", este returnată poziţia caracterului care urmează apariţiei. Dacă nu specificaţi o opţiune de returnare, "start" este implicit. Steguleţele pentru setarea opţiunilor pentru interpretarea expresiei regulate sunt specificate de "expresie_steguleţe". Literele individuale sunt utilizate pentru a defini steguleţele, cu valorile valide 's', 'm', 'i' şi 'x'. Exemplu: position_regex ( '.er' ; 'Flicker Lantern') Rezultat: 5 Exemplu: position_regex ( after '.er' ; 'Flicker Lantern' ) Rezultat: 8 Exemplu: position_regex ( '.er' ; 'Flicker Lantern' ; 1 ; 2 ) Rezultat: 12 trim ( [ [ urmare|leading|both ] [ match_character_expression ] , ] string_expression ) Returnează "expresie_şir" fără spaţiile iniţiale şi finale sau fără un anumit caracter specificat din "expresie_potrivire_caracter". "Both" este implicit când primul argument nu este enunţat şi valoarea gol este implicită când al doilea argument nu este enunţat. Exemplu: trim ( urmează după 'A' , 'ABCDEFA' ) Rezultat: ABCDEF Exemplu: trim ( ambele , ' ABCDEF ' ) Rezultat: ABCDEF upper ( expresie_şir ) Returnează "expresie_şir" cu toate literele mici convertite în litere mari. Exemplu: majuscule ( 'abcdef' ) Rezultat: ABCDEF user user Furnizează un identificator de autorizaţie gestionarului bazei de date în momentul execuţiei. nullif nullif ( expresie1, expresie2 ) Returnează null dacă "expresia1" este egală cu "expresia2", în caz contrar returnează "expresia1". coalesce ( listă_expresii ) Returnează primul argument nenul (sau nul dacă toate argumentele sunt nule). Solicită două sau mai multe argumente în "listă_expresii". coalesce ( [Unit price]; [Unit sale price] ) Rezultat: Returnează preţul unitar sau preţul de vânzare unitar dacă preţul unitar este nul. coalesce ( listă_expresii ) Returnează primul argument nenul (sau nul dacă toate argumentele sunt nule). Nenesită unul sau mai multe argumente în "listă_expresii". coalesce ( [Unit price]; [Unit sale price] ) Rezultat: Returnează preţul unitar sau preţul de vânzare unitar dacă preţul unitar este nul. ceil ( expresie_numerică ) Returnează cel mai mic întreg mai mare sau egal cu "expresie_numerică". ceiling ( expresie_numerică ) Returnează cel mai mic întreg mai mare sau egal cu "expresie_numerică". Exemplu: ceiling ( 4.22 ) Rezultat: 5 Exemplu: ceiling ( -1.23 ) Rezultat: -1 ln ( expresie_numerică ) Returnează logaritmul natural din "expresie_numerică". Exemplu: ln ( 4 ) Rezultat: 1,38629 exp ( expresie_numerică ) Returnează 'e' ridicat la puterea "expresie_numerică". Constanta 'e' este baza logaritmului natural. Exemplu: exp ( 2 ) Rezultat: 7,389056 period ( expresie1_dată-oră , expresie2_dată-oră ) Construieşte o valoare de perioadă cu un punct de pornire de "expresie1_dată-oră" şi un punct de oprire de "expresie2_dată-oră". Tipurile de date ale punctelor de pornire şi de terminare trebuie să fie identice şi pot fi dată, oră sau dată-oră. Valorile de perioadă pot fi utilizate în predicatele de perioadă. Exemplu: period ( 2003-03-03 , 2003-10-03 ) Exemplu: period ( 12:00:00 , 23:59:59 ) Exemplu: period ( 2003-03-03 12:00:00 , 2003-10-03 23:59:59 ) Exemplu: period ( [EMP].[BUS_START] , [EMP].[BUS_END] ) power ( expresie1_numerică , expresie2_numeric ) Returnează '"expresie1_numerică" ridicată la puterea "expresie2_numerică". Dacă "expresie1_numerică" este negativă, atunci "expresie2_numerică" trebuie să genereze o valoare întreagă. Exemplu: power ( 3 , 2 ) Rezultat: 9 random ( [ expresie_întreg ] ) Returnează o valoare aleatorie cu virgulă mobilă între 0 şi 1, utilizând "expresia_întreg" opţională ca valoare de bază. _round ( expresie_numerică , expresie_întreg ) Returnează "expresie_numerică" rotunjită la "expresie_întreg" poziţii la dreapta virgulei zecimale. Note: "expresie_întreg" trebuie să fie un întreg care nu este negativ. Rotunjirea se face înainte de aplicarea formatării datelor. Exemplu: _round ( 1220.42369, 2 ) Rezultat: 1220,42 Constructorul de rând reprezintă o colecţie de valori organizate ca un rând de date. Poate fi folosit în expresii condiţionale (de ex. IF-THEN-ELSE) şi în expresii de filtru (de ex. clauza IN). row ( listă_expresii ) Exemplu: if ( row([RetailerName],[OrderMethodCode]) = row('ActiForme',4) ) then ('A') else ('B') Rezultat: Întoarce 'A' dacă Retailer Name este 'ActiForme' şi codul metodei de comandare este 4. Altfel, este returnată valoarea 'B'. Exemplu: case row([RetailerName],[OrderMethodCode]) when row('Advanced Climbing Ltd',3) then 1 when row('ActiForme',5) then 2 else 3 end Rezultat: Întoarce 1 dacă Retailer Name este 'Advanced Climbing Ltd' şi codul metodei de comandare este 3. Întoarce 2 dacă Retailer Name este 'ActiForme' şi codul metodei de comandare este 5. Altfel, este returnată valoarea 3. Exemplu: row ( [OrderMethodCode]; [Year] ) in ( [Query].[OMC]; [Query].[YR] ) Rezultat: Datele returnate sunt filtrate de următoarele două condiţii: 1) [OrderMethodCode] in ([Query].[OMC]) 2) [Year] in ([Query].[YR]) sqrt ( expresie_numerică ) Returnează rădăcina pătrată a "expresie_numerică". "Expresie_numerică" nu trebuie să fie negativă. Exemplu: sqrt ( 9 ) Rezultat: 3 substring ( expresie_şir , expresie1_întreg [ , expresie2_întreg ] ) Returnează subşirul "expresie_şir" care porneşte la poziţia "expresie1_întreg" pentru caracterele "expresie2_întreg" sau la finalul "expresie_şir" dacă se omite "expresie2_întreg". Primul caracter din "expresie_şir" se află la poziţia 1. Exemplu: substring ( 'abcdefg' , 3 , 2 ) Rezultat: cd substring_regex ( regex_expression , expresie_şir [ , expresie1_întreg [ , expresie2_întreg [ , expresie_steguleţe ]]] ) Returnează un subşir de "expresie_şir" care se potriveşte cu expresia regulată "regex_expression". Căutarea începe la poziţia "expresie1_întreg", care are o valoare implicită de 1. Apariţia modelului de căutare este specificată de "expresie2_întreg", care are o valoare implicită de 1. Steguleţele de setare opţiuni pentru interpretarea expresiei regulate sunt specificate de "expresie_steguleţe". Literele individuale sunt utilizate pentru a defini steguleţele, cu valorile valide 's', 'm', 'i' şi 'x'. Exemplu: substring_regex ( '.er' ; 'Flicker Lantern') Rezultat: ker Exemplu: substring_regex ( '.er' ; 'Flicker Lantern' ; 1 ; 2 ) Rezultat: ter floor ( expresie_numerică ) Returnează cel mai mare întreg mai mic sau egal cu "expresie_numerică". Exemplu: floor ( 3.22 ) Rezultat: 3 Exemplu: floor ( -1.23 ) Rezultat: -2 width-bucket ( expresie_numerică ,  valoare_min ,  valoare_max ,  num_de_găleţi ) Pentru o expresie dată, această funcţie returnează numărul de cupe în care cade valoarea acestei expresii după evaluare. Exemplu: width-bucket ( Cantitate ,  100 ,  5000 ,  10 ) Rezultat: Pentru fiecare rând, returnează numărul de cupă (de la 0 la 11) pentru valoarea Cantitate curentă. Quantity width-bucket (Quantity) ------------ ------------------------------------- 50 0 450 1 1400 3 3600 8 4900 10 5000 11 sin ( expresie_numerică ) Această funcţie trigonometrică returnează sinusul argumentului, unde argumentul este un unghi exprimat în radiani. Exemplu: sin ( 0.1667 * 3.1415 ) Rezultat: 0.5 cos ( expresie_numerică ) Această funcţie trigonometrică returnează cosinusul argumentului, unde argumentul este un unghi exprimat în radiani. Exemplu: cos ( 0.3333 * 3.1415 ) Rezultat: 0.5 tan ( expresie_numerică ) Această funcţie trigonometrică returnează tangenta argumentului, unde argumentul este un unghi exprimat în radiani. Exemplu: tan ( 0.25 * 3.1415 ) Rezultat: 1 arccos ( expresie_numerică ) Această funcţie trigonometrică inversă returnează arccosinusul argumentului, unde argumentul este în intervalul de la -1 la 1 şi rezultatul este o valoare exprimată exprimată în radiani. Exemplu: arccos ( -1 ) Rezultat: 3.1415 arcsin ( expresie_numerică ) Această funcţie trigonometrică inversă returnează arcsinusul argumentului, unde argumentul este în intervalul de la -1 la 1 şi rezultatul este o valoare exprimată exprimată în radiani. Exemplu: arcsin ( 0 ) Rezultat: 3.1415 Această funcţie trigonometrică inversă returnează arctangenta argumentului, unde argumentul este în intervalul de la -1 la 1 şi rezultatul este o valoare exprimată în radiani. arctan ( expresie_numerică ) Exemplu: arctan ( 0 ) Rezultat: 3.1415 coshyp ( expresie_numerică ) Această funcţie trigonometrică returnează cosinusul hiperbolic al argumentului, unde argumentul este un unghi exprimat în radiani. Exemplu: coshyp ( 0 ) Rezultat: 1 sinhyp ( expresie_numerică ) Această funcţie trigonometrică returnează sinusul hiperbolic al argumentului, unde argumentul este un unghi exprimat în radiani. Exemplu: sinhyp ( 0 ) Rezultat: 0 tanhyp ( expresie_numerică ) Această funcţie trigonometrică returnează tangenta hiperbolică a argumentului, unde argumentul este un unghi exprimat în radiani. Exemplu: tanhyp ( 0 ) Rezultat: 0
Extensii OLAP SQL-99 cube cube ( grupare_coloană_referinţă_listă ) Aceasta este o clauză de "grupare" care generează o listă-set de grupări care conţine un set de grupări pentru toate combinaţiile posibile între coloanele de grupare din "listă_referinţă_coloană_grupare". rollup rollup ( grupare_coloană_referinţă_listă ) Aceasta este o clauză de "grupare" care generează o listă-set de grupări care conţine un set de grupări pentru fiecare sublistă adecvată din "listă_referinţă_coloană_grupare" prin plasarea elementelor de la dreapta, unul câte unul. grouping sets grouping sets ( listă_set_grupare ) Aceasta este o clauză de "grupare" care specifică mai multe seturi după care să se realizeze gruparea. rank rank () Calculează rangul rândului în interiorul unei partiţii, unde rangul rândului x este definit ca 1 plus numărul de rânduri care preced x, dar care nu sunt omoloage ale lui x. dense_rank dense_rank () Calculează rangul dens al rândului în interiorul unei partiţii, unde rangul dens al rândului x este definit ca numărul de rânduri distincte care preced şi includ x. percent_rank percent_rank () Calculează rangul procentual al rândului în interiorul unei partiţii, unde rangul procentual al rândului x este definit ca (xy - 1) / (ab - 1), unde xy este rangul lui x, iar ab este numărul de rânduri din partiţie. row_number row_number () Calculează numărul secvenţial al rândului în interiorul partiţiei, începând cu 1 pentru primul rând. ntile ntile ( expresie_numerică ) Împarte un set de date ordonat într-un număr de compartimente indicat de "expresie_numerică" şi atribuie fiecărui rând numărul de compartiment adecvat.