Zoeken…


Invoering

SQL biedt verschillende ingebouwde scalaire functies. Elke scalaire functie neemt één waarde als invoer en retourneert één waarde als uitvoer voor elke rij in een resultatenset.

U gebruikt scalaire functies overal waar een expressie is toegestaan binnen een T-SQL-instructie.

Syntaxis

  • CAST (expressie AS data_type [(lengte)])
  • CONVERT (data_type [(lengte)], expressie [, stijl])
  • PARSE (string_waarde AS data_type [cultuur GEBRUIKEN])
  • DATENAME (gegevensdeel, datum)
  • KRIJG DATUM ( )
  • DATEDIFF (gegevensdeel, startdatum, einddatum)
  • DATEADD (gegevensdeel, nummer, datum)
  • KIES (index, val_1, val_2 [, val_n])
  • IIF (boolean_expression, true_value, false_value)
  • SIGN (numerieke_expressie)
  • POWER (float_expression, y)

Opmerkingen

Scalaire of Single-Row-functies worden gebruikt om elke rij met gegevens in de resultatenset te bedienen, in tegenstelling tot geaggregeerde functies die op de gehele resultatenset werken.

Er zijn tien soorten scalaire functies.

  1. Configuratiefuncties geven informatie over de configuratie van het huidige SQL-exemplaar.
  2. Conversiefuncties zetten gegevens om in het juiste gegevenstype voor een bepaalde bewerking. Dit soort functies kan bijvoorbeeld informatie opnieuw formatteren door een tekenreeks te converteren naar een datum of nummer zodat twee verschillende typen kunnen worden vergeleken.
  3. Datum- en tijdfuncties manipuleren velden die datum- en tijdwaarden bevatten. Ze kunnen numerieke, datum- of tekenreekswaarden retourneren. U kunt bijvoorbeeld een functie gebruiken om de huidige dag van de week of het jaar of alleen het jaar vanaf de datum op te halen.

De waarden geretourneerd door datum- en tijdfuncties zijn afhankelijk van de datum en tijd die zijn ingesteld voor het besturingssysteem van de computer waarop het SQL-exemplaar wordt uitgevoerd.

  1. Logische functie die bewerkingen uitvoert met logische operatoren. Het evalueert een reeks voorwaarden en retourneert een enkel resultaat.
  2. Wiskundige functies voeren wiskundige bewerkingen of berekeningen uit op numerieke uitdrukkingen. Dit type functie retourneert een enkele numerieke waarde.
  3. Metadatafuncties halen informatie over een opgegeven database op, zoals de naam en databaseobjecten.
  4. Beveiligingsfuncties bieden informatie die u kunt gebruiken om de beveiliging van een database te beheren, zoals informatie over databasegebruikers en rollen.
  5. Stringfuncties voeren bewerkingen uit op stringwaarden en retourneren numerieke of stringwaarden.

Met tekenreeksfuncties kunt u bijvoorbeeld gegevens combineren, een substring extraheren, tekenreeksen vergelijken of een tekenreeks omzetten in hoofdletters of kleine letters.

  1. Systeemfuncties voeren bewerkingen uit en retourneren informatie over waarden, objecten en instellingen voor het huidige SQL-exemplaar
  2. Statistische systeemfuncties bieden verschillende statistieken over de huidige SQL-instantie, bijvoorbeeld zodat u de huidige prestatieniveaus van het systeem kunt volgen.

Karakterwijzigingen

Karakter-modificerende functies omvatten het omzetten van tekens in hoofdletters of kleine letters, het omzetten van cijfers in opgemaakte cijfers, het uitvoeren van tekenmanipulatie, enz.

De functie lower(char) converteert de gegeven tekenparameter naar tekens met een kleine letter.

SELECT customer_id, lower(customer_last_name) FROM customer;

zou de achternaam van de klant teruggeven, gewijzigd van "SMITH" in "smith".

Datum en tijd

In SQL gebruikt u gegevenstypes voor datum en tijd om kalenderinformatie op te slaan. Deze gegevenstypen omvatten de tijd, datum, kleine datumtijd, datumtijd, datumtijd2 en datumtijdoffset. Elk gegevenstype heeft een specifiek formaat.


Data type Formaat
tijd hh: mm: ss [.nnnnnnn]
datum YYYY-MM-DD
smalldatetime JJJJ-MM-DD uu: mm: ss
datum Tijd JJJJ-MM-DD uu: mm: ss [.nnn]
datetime2 JJJJ-MM-DD uu: mm: ss [.nnnnnnn]
DateTimeOffset JJJJ-MM-DD uu: mm: ss [.nnnnnnn] [+/-] uu: mm

De functie DATENAME retourneert de naam of waarde van een specifiek deel van de datum.

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

U gebruikt de functie GETDATE om de huidige datum en tijd te bepalen van de computer waarop het huidige SQL-exemplaar wordt uitgevoerd. Deze functie omvat het tijdzoneverschil niet.

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

De functie DATEDIFF retourneert het verschil tussen twee datums.

In de syntaxis is datepart de parameter die aangeeft welk deel van de datum u wilt gebruiken om het verschil te berekenen. Het gegevensdeel kan jaar, maand, week, dag, uur, minuut, seconde of milliseconde zijn. Vervolgens geeft u de begindatum op in de parameter startdatum en de einddatum in de parameter einddatum waarvoor u het verschil wilt vinden.

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

Met de functie DATEADD kunt u een interval toevoegen aan een deel van een specifieke datum.

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

Configuratie- en conversiefunctie

Een voorbeeld van een configuratiefunctie in SQL is de functie @@SERVERNAME . Deze functie geeft de naam van de lokale server waarop SQL wordt uitgevoerd.

SELECT @@SERVERNAME AS 'Server'
Server
SQL064

In SQL vinden de meeste gegevensconversies impliciet plaats, zonder tussenkomst van de gebruiker.

Om conversies uit te voeren die niet impliciet kunnen worden voltooid, kunt u de functies CAST of CONVERT .

De syntaxis van de CAST functie is eenvoudiger dan de syntaxis van de CONVERT functie, maar is beperkt in wat het kan doen.

Hier gebruiken we zowel de CAST als de CONVERT functies om het datetime-gegevenstype om te zetten in het varchar gegevenstype.

De CAST functie gebruikt altijd de standaardstijlinstelling. Het vertegenwoordigt bijvoorbeeld datums en tijden met de indeling JJJJ-MM-DD.

De CONVERT functie gebruikt de datum- en tijdstijl die u opgeeft. In dit geval geeft 3 de datumnotatie dd / mm / jj op.

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
Gips Converteren
David Hamiltion werd aangenomen op 04-04-2003 David Hamiltion werd aangenomen op 04/02/03

Een ander voorbeeld van een conversiefunctie is de PARSE functie. Deze functie converteert een tekenreeks naar een opgegeven gegevenstype.

In de syntaxis voor de functie geeft u de tekenreeks op die moet worden geconverteerd, het AS sleutelwoord en vervolgens het vereiste gegevenstype. Optioneel kunt u ook de cultuur opgeven waarin de tekenreekswaarde moet worden opgemaakt. Als u dit niet opgeeft, wordt de taal voor de sessie gebruikt.

Als de tekenreekswaarde niet kan worden geconverteerd naar een numerieke, datum- of tijdnotatie, resulteert dit in een fout. U moet dan CAST of CONVERT voor de conversie.

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

Logische en wiskundige functie

SQL heeft twee logische functies - CHOOSE en IIF .

De functie CHOOSE retourneert een item uit een zoeklijst op basis van de positie in de lijst. Deze positie wordt gespecificeerd door de index.

In de syntaxis geeft de indexparameter het item aan en is het een geheel getal of een geheel getal. De parameter val_1 ... val_n identificeert de zoeklijst.

SELECT CHOOSE(2, 'Human Resources', 'Sales', 'Admin', 'Marketing' ) AS Result;
Resultaat
verkoop

In dit voorbeeld gebruikt u de functie CHOOSE om het tweede item in een lijst met afdelingen te retourneren.


De IIF functie retourneert een van twee waarden, gebaseerd op een bepaalde voorwaarde. Als de voorwaarde waar is, wordt de werkelijke waarde geretourneerd. Anders wordt een valse waarde geretourneerd.

In de syntaxis geeft de parameter boolean_expression de Booleaanse expressie aan. De parameter true_value geeft de waarde aan die moet worden geretourneerd als de boolean_expression wordt geëvalueerd en de parameter false_value geeft de waarde aan die moet worden geretourneerd als de boolean_expression wordt geëvalueerd.

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 Geen bonus

In dit voorbeeld gebruikt u de IIF-functie om een van twee waarden te retourneren. Als de jaaromzet van een verkoper hoger is dan 200.000, komt deze persoon in aanmerking voor een bonus. Waarden onder 200.000 betekenen dat werknemers niet in aanmerking komen voor bonussen.


SQL bevat verschillende wiskundige functies die u kunt gebruiken om berekeningen uit te voeren op invoerwaarden en numerieke resultaten te retourneren.


Een voorbeeld is de functie SIGN , die een waarde retourneert die het teken van een uitdrukking aangeeft. De waarde van -1 geeft een negatieve uitdrukking aan, de waarde van +1 geeft een positieve uitdrukking aan en 0 geeft nul aan.

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

In het voorbeeld is de invoer een negatief getal, dus geeft het paneel Resultaten het resultaat -1 weer.


Een andere wiskundige functie is de POWER functie. Deze functie biedt de waarde van een uitdrukking die tot een opgegeven macht is verhoogd.

In de syntaxis geeft de parameter float_expression de expressie op en geeft de parameter y de macht op waarnaar u de expressie wilt verhogen.

SELECT POWER(50, 3) AS Result
Resultaat
125000


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow