Single-Row-Funktionen

SQL-Single-Row-Funktionen liefern aus einem Ausdruck einer Zeile einen Wert zurück. Diese Funktionen sind zu einem großen Teil herstellerabhängig, ein Teil wurde in den SQL2-Standard aufgenommen. Single-Row-Funktionen können beliebig hintereinander verschachtelt werden, wenn die Datentypen zueinander passen.

siehe auch: SQL-Funktionen, Gruppenfunktionen,

Eine Auswahl an Single-Row-Funktionen auf Zeichenketten (Oracle und MySQL)

FunktionBeschreibungBeispiel
LOWER (String)Konvertiert String in KleinbuchstabenSELECT LOWER(Nad1name}FROM Angestellte
UPPER {String)Konvertiert String in GroßbuchstabenSELECT UPPER(Nachname) FROM Angestellte
LENGTH {String)Liefert die Anzahl der Zeichen des StringsSELECT LENGTH (Nachname) FROM Angestellte
SUBSTR (String, m [n])Liefert eine Zeichenkette der Länge n ab der Position mSELECT SUBSTR(Nachname, 2,2) FROM Angestellte
CONCAT (String,Strlng2 ...)Hängt zwei Strings aneinanderSELECT CONCAT('Hugo ', 'Schmidt') l FROM DUAL;
ASCIIwandelt ein einzelnes Zeichen in ASCII-Code umSELECT ASCII('F') FROM DUAL
CHRWandeit ASCII-Code in Zeichen umSELECT CHRU(7O) FROM DUAL;
TRIMEntfernt Suffixe und PräfixeSELECT TRIM('H' FROM 'Hug0’} FROM DUAL;
LPAD,RPADFüllt Zeichenketten auf eine bestimmte Länge von links bzw. rechts mit Füllzeichen aufSELECT LPAD('Hugo Müller', 25, ‘x') FROM DUAL;

Die Tabelle DUAL ist oraclespezifisch.

Eine Auswahl an numerischen und mathematischen Single Row—Funktionen (Oracle und MySQL)

FunktionBeschreibungBeispiel
ROUND (Ausdruck,n)Rundet den Ausdruck auf n DezimalstellenSELECT ROUND(Gehalt, 2) FROM Angestellte;
MOD (m,n)Liefert den Rest von m dividiert durch nSELECT MOD (Gehalt, 2)FROM Angestellte;
TRUNC(Ausdruck, n)Schneidet den Ausdruck nach n Dezimalstellen ab 
NVL(Spalte, Wert),IFNULL (Spalte, Wert)Ersetzt einen NULL·Wert in der Spalte durch den angegebenen Wert,sonst wird der Wert der Spalte zurückgegebenSELECT NVL(GehaIt, 0) FROM Angestellte; SELECT IFNULL(Gehalt, 0) FROM Angestellte;
ROUND (Ausdruck,n)Rundet den Ausdruck auf n DezimalstellenSELECT ROUND(Gehalt, 2) FROM Angestellte;
ABS, COS, SIN,LN, LOG, SIGN,POWER, SINH,SQRT,TANVerschiedene mathematische Funktionen,siehe Hersteller-Originalliteratur; 

Eine Auswahl an Single-Row-Datumsfunktlonen (Oracle)

FunktionBeschreibungBeispiel
MONTHS_BETWEENBerechnet die Datumsdifferenz in MonatenMONTHS_BETWEEN( Monaten '15.01.2000','01.12.I999')ergibt: 1,4516129
ADD_MONTHAddiert Monate zum DatumADD_MONTHS('01.09.1999'. 6} ergibt '01.03.00'
NEXT_DAYErster Wochentag nach dem DatumNEXT_DAY('01.09.95','FRlDAY') ergibt '02.09.95'
LAST_DAYLetzter Tag des MonatsLAST__DAY{(01 .09.99) ergibt '30,09.99'
ROUNDRundet auf Monate, Jahre, Tage uswROUND ('25.U5,95', 'MONTH)} ergibt '01-JUN·95''
TRUNCSchneidet Monate, Jahre, Tage usw. abTRUNC (‘25-MAY·95', 'MONTH) ergibt '01-MAY-95'

Eine Auswahl an Single-Row-Datumsfunktionen (MySQL)

FunktionBeschreibungBeispiel
ADDDATE (datum, interval)Addiert Tage oder ein Intervall zum AusdruckADDDATE('01.09.2006'. 6)
MONTH (datum)Extrahiert die Monatszahl aus einem DammMONTH('01 .09.2006')
YEAR (datum)Extrahiert die Jahreszahl aus einem DatumYEAR('01 .09,2006')
DATEDIFF (datum1,datum 2)Differenz in TagenDATEDlFF('0l .09.06', '12.12.2007')
CURRENT_TIME(),NOW()Gibt das Systemdatum ausCURRENT_TlME{)

Konvertierungsfunktionen zur Typumwandlung (Oracle, MySQL)

Unter Oracle gibt es Funktionen wie TO_CHAR, TO_NUMERlC, TO_DATE und TO_VARCHAR, die einen Ausdruck in den entsprechenden Typ umwandeln. Unter MySQL heißen diese Funktionen sinnigerweise CHAR, NUMERIC. DATE und VARCHAR. Daneben gibt es in beiden Implementierungen die SQL-konforme Funktion CAST [Ausdruck AS-Typ}, die einen Ausdruck in den vorgegebenen Typ umwandelt. Die obigen Funktionen können beliebig ineinander geschachtelt werden.

Beispiele:

SELECT CONCAT(SUBSTR(vorname,3}. UPPER{Nachnamel) FROM Angestellte
SELECT Ang_Nr, CAST(Gehalt AS VARCHAR{5G)) FROM Angestellte

Quellen:

Kategorie: SQL, S