Inhoudsopgave:
- Expressies van tekenreeksen
- Expressies met numerieke waarden
- Uitdrukkingen van uitdrukkingen voor uitgaansduur
- Intervalwaarde-uitdrukkingen
- Uitdrukkingen voorwaardelijke waarden
Video: SQL Queries with Expression Fields (How to put Calculated Columns in a Query) 2024
Een SQL-expressie kan eenvoudig of complex zijn. De uitdrukking kan letterlijke waarden, kolomnamen, parameters, hostvariabelen, subqueries, logische verbindin gen en rekenkundige operatoren bevatten. Ongeacht de complexiteit ervan, moet een expressie terugvallen tot één waarde.
Om deze reden zijn SQL-expressies algemeen bekend als -waardexpressies. Combinatie van uitdrukkingen van meerdere waarden in een enkele uitdrukking is mogelijk, zolang de uitdrukkingen van de componentwaarden worden beperkt tot waarden met compatibele gegevenstypen.
SQL heeft vijf soorten waarde-uitdrukkingen:
-
Expressies van tekenreeksen
-
Expressies met numerieke waarden
-
Uitdrukkingen van uitdrukkingen voor uitdrukkingen voor uitdrukkingen
-
Expressies van intervalwaarden
-
Uitdrukkingen met voorwaardelijke waarden
Expressies van tekenreeksen
De eenvoudigste tekenwaarde-uitdrukking voor geeft een waarde voor een enkele reeks aan. Andere mogelijkheden zijn een kolomverwijzing, een set-functie, een scalaire subquery, een CASE-expressie, een CAST-expressie of een complexe tekenreekswaarde-uitdrukking.
Er is slechts één operator mogelijk in een tekenreekswaarde-uitdrukking: de aaneenschakelingsexploitant. U kunt een van de waardeafbeeldingen samenvoegen met een andere uitdrukking om een complexere tekenreekswaarde-uitdrukking te maken. Een paar verticale lijnen (||) vertegenwoordigt de aaneenschakelingsexploitant. De volgende tabel bevat enkele voorbeelden van tekenreeksen met tekenreeksen.
Expression | Produceert |
---|---|
'Peanut' ||
'broos' |
'Peanut broos' |
'Jelly' || "||
'bonen' |
' Jelly beans ' |
FIRST_NAME || "||
LAST_NAME |
' Joe Smith ' |
B'1100111' ||
B'01010011 ' |
' 110011101010011 ' |
" | |
'Asperges' |
'Asperges' |
'Asperges' ||
" |
'Asperges' |
'As' ||" ||
'par' || "|| 'agus' |
'Asparagus' |
Als u een tekenreeks aan een tekenreeks met lengte nul koppelt, is het resultaat hetzelfde als de oorspronkelijke tekenreeks.
Expressies met numerieke waarden
In uitdrukkingen met numerieke waarden, kunt u de optel-, aftrek-, vermenigvuldigings- en divisie-operators toepassen op numerieke gegevens. De expressie moet worden teruggebracht tot een numerieke waarde. De componenten van een numerieke waarde-expressie kunnen verschillende gegevenstypen hebben zolang alle de gegevenstypen numeriek zijn.
Het gegevenstype van het resultaat hangt af van de gegevenstypen van de componenten waarvan u het resultaat afleidt. Toch geeft de SQL-standaard niet rigide het type op dat het resultaat is van een specifieke combinatie van bronexpressiecomponenten. Dat komt door de verschillen tussen hardwareplatforms.Raadpleeg de documentatie voor uw specifieke platform wanneer u numerieke gegevenstypen combineert.
Hier zijn enkele voorbeelden van uitdrukkingen met numerieke waarden:
-
-27
-
49 + 83
-
5 * (12 - 3)
-
PROTEIN + FAT + CARBOHYDRATE
-
FEET / 5280
-
COST *: multiplierA
Uitdrukkingen van uitdrukkingen voor uitgaansduur
Uitdrukkingen van uitdrukkingen voor uitdrukkingen voor uitdrukkingen voeren bewerkingen uit op gegevens die betrekking hebben op datums en tijden. Deze waarde-uitdrukkingen kunnen componenten bevatten van de typen DATE, TIME, TIMESTAMP of INTERVAL. Het resultaat van een datetime-uitdrukking is altijd een type datetime (DATE, TIME of TIMESTAMP). De volgende uitdrukking geeft bijvoorbeeld de datum één week vanaf vandaag:
CURRENT_DATE + INTERVAL '7' DAG
Tijden worden gehandhaafd in Universal Time Coordinated (UTC) - in het VK bekend als Greenwich Mean Time - maar u kan een offset specificeren om de tijd correct te maken voor een bepaalde tijdzone. Voor de lokale tijdzone van uw systeem kunt u de eenvoudige syntaxis gebruiken die in het volgende voorbeeld wordt gegeven:
TIJD '22: 55: 00 'AT LOCAL
U kunt deze waarde ook op de lange manier opgeven:
TIJD '22: 55: 00 'TIJDZONE INTERVAL' -08. 00 'HOUR TOT MINUUT
Deze uitdrukking definieert de lokale tijd als de tijdzone voor Portland, Oregon, acht uur eerder dan die van Greenwich, Engeland.
Intervalwaarde-uitdrukkingen
Als u de ene datetime van een andere afhaalt, krijgt u een interval . Het toevoegen van een datetime aan een andere heeft geen zin, dus SQL staat u niet toe om dit te doen. Als u twee intervallen bij elkaar optelt of één interval van een ander interval aftrekt, is het resultaat een interval. U kunt ook een interval vermenigvuldigen of delen door een numerieke constante.
SQL heeft twee soorten intervallen: jaar-maand en overdag. Om onduidelijkheden te voorkomen, moet u opgeven welke in een intervaluitdrukking moet worden gebruikt. De volgende uitdrukking geeft bijvoorbeeld het interval in jaren en maanden totdat u de pensioengerechtigde leeftijd bereikt:
(BIRTHDAY_65 - CURRENT_DATE) JAAR NAAR MAAND
Het volgende voorbeeld geeft een interval van 40 dagen:
INTERVAL '17 'DAG + INTERVAL' 23 'DAG
Het volgende voorbeeld geeft een schatting van het totale aantal maanden dat een moeder van vijf zwanger is (ervan uitgaande dat ze momenteel geen nummer zes verwacht!):
INTERVAL' 9 'MONTH * 5
Intervallen kunnen zowel negatief als positief zijn en kunnen bestaan uit elke waarde-uitdrukking of combinatie van waarde-uitdrukkingen die een interval oplevert.
Uitdrukkingen voorwaardelijke waarden
De waarde van een uitdrukking met voorwaardelijke waarde is afhankelijk van een voorwaarde. De uitdrukkingen voor voorwaardelijke waarden CASE, NULLIF en COALESCE zijn aanzienlijk complexer dan de andere soorten waarde-uitdrukkingen.