Suche…


Einführung

SQL bietet mehrere integrierte Skalarfunktionen. Jede Skalarfunktion nimmt einen Wert als Eingabe und gibt einen Wert als Ausgabe für jede Zeile in einer Ergebnismenge zurück.

Sie verwenden Skalarfunktionen, wenn ein Ausdruck in einer T-SQL-Anweisung zulässig ist.

Syntax

  • CAST (Ausdruck AS data_type [(Länge)])
  • CONVERT (Datentyp [(Länge)], Ausdruck [, Stil])
  • PARSE (string_value AS data_type [USING culture])
  • DATENAME (Datumsteil, Datum)
  • VERABREDUNG BEKOMMEN ( )
  • DATEDIFF (Datumsteil, Startdatum, Enddatum)
  • DATEADD (Datumsteil, Nummer, Datum)
  • CHOOSE (Index, Wert_1, Wert_2 [, Wert_n])
  • IIF (boolean_expression, true_value, false_value)
  • SIGN (numerischer_Ausdruck)
  • POWER (float_expression, y)

Bemerkungen

Skalar- oder Einzelzeilenfunktionen werden verwendet, um jede Datenzeile in der Ergebnismenge zu bearbeiten, im Gegensatz zu Aggregatfunktionen, die die gesamte Ergebnismenge bearbeiten.

Es gibt zehn Arten von Skalarfunktionen.

  1. Konfigurationsfunktionen bieten Informationen zur Konfiguration der aktuellen SQL-Instanz.
  2. Konvertierungsfunktionen konvertieren Daten in den richtigen Datentyp für eine bestimmte Operation. Diese Arten von Funktionen können beispielsweise Informationen umformatieren, indem sie eine Zeichenfolge in ein Datum oder eine Zahl konvertieren, um den Vergleich zweier verschiedener Typen zu ermöglichen.
  3. Datums- und Uhrzeitfunktionen bearbeiten Felder, die Datums- und Uhrzeitwerte enthalten. Sie können numerische Werte, Datums- oder Zeichenfolgenwerte zurückgeben. Sie können beispielsweise eine Funktion verwenden, um den aktuellen Wochentag oder das aktuelle Jahr oder nur das Jahr vom Datum abzurufen.

Die von Datums- und Uhrzeitfunktionen zurückgegebenen Werte hängen von Datum und Uhrzeit ab, die für das Betriebssystem des Computers festgelegt sind, auf dem die SQL-Instanz ausgeführt wird.

  1. Logische Funktion, die Operationen mit logischen Operatoren ausführt. Es wertet eine Reihe von Bedingungen aus und gibt ein einzelnes Ergebnis zurück.
  2. Mathematische Funktionen führen mathematische Operationen oder Berechnungen an numerischen Ausdrücken durch. Diese Art von Funktion gibt einen einzelnen numerischen Wert zurück.
  3. Metadatenfunktionen rufen Informationen zu einer angegebenen Datenbank ab, z. B. ihren Namen und Datenbankobjekte.
  4. Sicherheitsfunktionen enthalten Informationen, die Sie zum Verwalten der Sicherheit einer Datenbank verwenden können, z. B. Informationen zu Datenbankbenutzern und -rollen.
  5. Stringfunktionen führen Operationen mit Stringwerten aus und geben entweder numerische Werte oder Stringwerte zurück.

Mit Stringfunktionen können Sie beispielsweise Daten kombinieren, einen Teilstring extrahieren, Strings vergleichen oder einen String in Groß- oder Kleinbuchstaben konvertieren.

  1. Systemfunktionen führen Vorgänge aus und geben Informationen zu Werten, Objekten und Einstellungen für die aktuelle SQL-Instanz zurück
  2. Systemstatistikfunktionen liefern verschiedene Statistiken über die aktuelle SQL-Instanz. So können Sie beispielsweise die aktuellen Leistungsniveaus des Systems überwachen.

Charakteränderungen

Die Funktionen zur Zeichenänderung umfassen das Konvertieren von Zeichen in Groß- oder Kleinbuchstaben, das Konvertieren von Zahlen in formatierte Zahlen, das Durchführen von Zeichenmanipulationen usw.

Die lower(char) -Funktion konvertiert den angegebenen Zeichenparameter in Kleinbuchstaben.

SELECT customer_id, lower(customer_last_name) FROM customer;

würde den Nachnamen des Kunden zurückgeben, der von "SMITH" in "Smith" geändert wurde.

Datum und Uhrzeit

In SQL verwenden Sie Datums- und Uhrzeitdatentypen zum Speichern von Kalenderinformationen. Zu diesen Datentypen gehören Uhrzeit, Datum, Smalldatetime, Datum und Uhrzeit, Datum und Uhrzeit sowie Datum und Uhrzeit. Jeder Datentyp hat ein bestimmtes Format.


Datentyp Format
Zeit hh: mm: ss [.nnnnnnn]
Datum JJJJ-MM-TT
Kleinzeit JJJJ-MM-TT hh: mm: ss
Terminzeit JJJJ-MM-TT hh: mm: ss [.nnn]
datetime2 JJJJ-MM-TT hh: mm: ss [.nnnnnnn]
datetimeoffset JJJJ-MM-TThh: mm: ss [.nnnnnnn] [+/-] hh: mm

Die DATENAME Funktion gibt den Namen oder Wert eines bestimmten Teils des Datums zurück.

SELECT DATENAME (weekday,'2017-01-14') as Datename
Datename
Samstag

Mit der Funktion GETDATE können Sie das aktuelle Datum und die Uhrzeit des Computers ermitteln, auf dem die aktuelle SQL-Instanz ausgeführt wird. Diese Funktion beinhaltet nicht die Zeitzonenverschiebung.

SELECT GETDATE() as Systemdate 
Systemdatum
2017-01-14 11: 11: 47.7230728

Die DATEDIFF Funktion gibt die Differenz zwischen zwei Datumsangaben zurück.

In der Syntax ist datepart der Parameter, der angibt, welchen Teil des Datums Sie zur Differenzberechnung verwenden möchten. Der Datumsteil kann Jahr, Monat, Woche, Tag, Stunde, Minute, Sekunde oder Millisekunde sein. Sie geben dann das Startdatum im Parameter "Startdatum" und das Enddatum im Parameter "Enddatum" an, für das Sie die Differenz ermitteln möchten.

SELECT SalesOrderID, DATEDIFF(day, OrderDate, ShipDate) 
AS 'Processing time'
FROM Sales.SalesOrderHeader
SalesOrderID Bearbeitungszeit
43659 7
43660 7
43661 7
43662 7

Mit der Funktion DATEADD können Sie einem Teil eines bestimmten Datums ein Intervall hinzufügen.

SELECT DATEADD (day, 20, '2017-01-14') AS Added20MoreDays
Hinzugefügt20MoreDays
2017-02-03 00: 00: 00.000

Konfigurations- und Konvertierungsfunktion

Ein Beispiel für eine Konfigurationsfunktion in SQL ist die Funktion @@SERVERNAME . Diese Funktion gibt den Namen des lokalen Servers an, auf dem SQL ausgeführt wird.

SELECT @@SERVERNAME AS 'Server'
Server
SQL064

In SQL erfolgen die meisten Datenkonvertierungen implizit ohne Eingreifen des Benutzers.

Um Konvertierungen durchzuführen, die nicht implizit abgeschlossen werden können, können Sie die Funktionen CAST oder CONVERT verwenden.

Die CAST Funktionssyntax ist einfacher als die CONVERT Funktionssyntax, ist jedoch in CONVERT Funktion eingeschränkt.

In hier verwenden wir die beiden CAST und CONVERT Funktionen der Datumsdatentyp zum konvertieren varchar Datentyp.

Die CAST Funktion verwendet immer die Standardstileinstellung. Beispielsweise werden Datum und Uhrzeit im Format JJJJ-MM-TT dargestellt.

Die CONVERT Funktion verwendet den von Ihnen angegebenen Datums- und CONVERT . In diesem Fall gibt 3 das Datumsformat TT / MM / JJ an.

USE AdventureWorks2012
GO
SELECT FirstName + ' ' + LastName + ' was hired on ' +
       CAST(HireDate AS varchar(20)) AS 'Cast',
       FirstName + ' ' + LastName + ' was hired on ' +
       CONVERT(varchar, HireDate, 3) AS 'Convert'
FROM Person.Person AS p
JOIN HumanResources.Employee AS e
ON p.BusinessEntityID = e.BusinessEntityID
GO
Besetzung Konvertieren
David Hamiltion wurde am 2003-02-04 eingestellt David Hamiltion wurde am 02.04.03 eingestellt

Ein weiteres Beispiel für eine Konvertierungsfunktion ist die PARSE Funktion. Diese Funktion konvertiert eine Zeichenfolge in einen angegebenen Datentyp.

In der Syntax für die Funktion geben Sie die zu konvertierende Zeichenfolge, das AS Schlüsselwort und dann den erforderlichen Datentyp an. Optional können Sie auch die Kultur angeben, in der der Zeichenfolgewert formatiert werden soll. Wenn Sie dies nicht angeben, wird die Sprache für die Sitzung verwendet.

Wenn der Zeichenfolgenwert nicht in ein Zahlen-, Datums- oder Zeitformat konvertiert werden kann, führt dies zu einem Fehler. Sie müssen dann CAST oder CONVERT für die Konvertierung verwenden.

SELECT PARSE('Monday, 13 August 2012' AS datetime2 USING 'en-US') AS 'Date in English'
Datum auf Englisch
2012-08-13 00: 00: 00.0000000

Logische und mathematische Funktion

SQL hat zwei logische Funktionen - CHOOSE und IIF .

Die CHOOSE Funktion gibt ein Element aus einer Liste von Werten basierend auf seiner Position in der Liste zurück. Diese Position wird durch den Index angegeben.

In der Syntax gibt der Indexparameter das Element an und ist eine ganze Zahl oder ganze Zahl. Der Parameter val_1… val_n gibt die Liste der Werte an.

SELECT CHOOSE(2, 'Human Resources', 'Sales', 'Admin', 'Marketing' ) AS Result;
Ergebnis
Der Umsatz

In diesem Beispiel verwenden Sie die Funktion CHOOSE , um den zweiten Eintrag in einer Liste von Abteilungen zurückzugeben.


Die IIF Funktion gibt basierend auf einer bestimmten Bedingung einen von zwei Werten zurück. Wenn die Bedingung wahr ist, wird ein wahrer Wert zurückgegeben. Andernfalls wird ein falscher Wert zurückgegeben.

In der Syntax gibt der Parameter boolean_expression den boolean-Ausdruck an. Der Parameter true_value gibt den Wert an, der zurückgegeben werden soll, wenn der boolean_expression-Wert als true ausgewertet wird, und der Parameter false_value gibt den Wert an, der zurückgegeben werden soll, wenn der boolean_expression-Wert false ergibt.

SELECT BusinessEntityID, SalesYTD, 
       IIF(SalesYTD > 200000, 'Bonus', 'No Bonus') AS 'Bonus?'
FROM Sales.SalesPerson
GO
BusinessEntityID SalesYTD Bonus?
274 559697.5639 Bonus
275 3763178.1787 Bonus
285 172524.4512 Kein Bonus

In diesem Beispiel verwenden Sie die IIF-Funktion, um einen von zwei Werten zurückzugeben. Wenn der Umsatz eines Vertriebsmitarbeiters bis zum Jahresende über 200.000 liegt, hat er Anspruch auf einen Bonus. Werte unter 200.000 bedeuten, dass die Mitarbeiter keine Boni erhalten.


SQL enthält mehrere mathematische Funktionen, mit denen Sie Berechnungen zu Eingabewerten durchführen und numerische Ergebnisse zurückgeben können.


Ein Beispiel ist die SIGN Funktion, die einen Wert zurückgibt, der das Vorzeichen eines Ausdrucks angibt. Der Wert von -1 zeigt einen negativen Ausdruck an, der Wert von +1 einen positiven Ausdruck und 0 einen Nullwert.

SELECT SIGN(-20) AS 'Sign'
Zeichen
-1

Im Beispiel ist die Eingabe eine negative Zahl, daher wird im Ergebnisbereich das Ergebnis -1 aufgeführt.


Eine weitere mathematische Funktion ist die POWER Funktion. Diese Funktion liefert den Wert eines Ausdrucks, der mit einer bestimmten Potenz erzeugt wird.

In der Syntax gibt der Parameter float_expression den Ausdruck an, und der Parameter y gibt die Potenz an, um die der Ausdruck erhöht werden soll.

SELECT POWER(50, 3) AS Result
Ergebnis
125000


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow