Innehållsförteckning:
- Stringvärdesuttryck
- kan du ange addition, subtraktion, multiplikation och divisionoperatörer till numeriska data. Uttrycket måste minska till ett numeriskt värde. Komponenterna i ett numeriskt värdeuttryck kan ha olika datatyper så länge som
- CURRENT_DATE + INTERVAL '7' DAY
- Att lägga till en datetime till en annan gör ingen mening, så SQL tillåter dig inte att göra det. Om du lägger till två intervall tillsammans eller subtraherar ett intervall från ett annat intervall, är resultatet ett intervall. Du kan också antingen multiplicera eller dela ett intervall med en numerisk konstant.
- beror på ett tillstånd. De villkorliga värdet uttrycken CASE, NULLIF och COALESCE är betydligt mer komplexa än de andra typerna av värdeuttryck.
Video: SQL Queries with Expression Fields (How to put Calculated Columns in a Query) 2024
Ett SQL-uttryck kan vara enkelt eller komplext. Uttrycket kan innehålla bokstavsvärden, kolumnnamn, parametrar, värdvariabler, undersökningar, logiska anslutningar och aritmetiska operatörer. Oavsett dess komplexitet måste ett uttryck minska till ett enda värde.
Därför är SQL-uttryck allmänt kända som -värdesuttryck. Kombinera flera värdeuttryck till ett enda uttryck är möjligt, så länge som uttrycket för komponentvärdet minskar till värden som har kompatibla datatyper.
SQL har fem typer av värdeuttryck:
-
Strängvärdesuttryck
-
Numeriska värdesuttryck
-
Terminvärdesuttryck
-
Intervallvärdesuttryck
-
Villkor för uttrycksvärde
Stringvärdesuttryck
Det enklaste strängvärdesuttrycket anger ett enda strängvärde. Andra möjligheter inkluderar en kolumnreferens, en uppsättning funktion, en skalär subquery, ett CASE-uttryck, ett CAST-uttryck eller ett komplext strängvärdesuttryck.
Endast en operatör är möjlig i ett strängvärdesuttryck: koncensationsoperatören. Du kan sammanfatta något av värdesuttryck med ett annat uttryck för att skapa ett mer komplext strängvärdesuttryck. Ett par vertikala linjer (||) representerar kopplingsoperatören. Följande tabell visar några exempel på strängvärdesuttryck.
'' Peanut '|| | ' skört ' |
---|---|
' Jordnötsskört '
' Jelly '||' || |
'bönor' |
' Gelébönor "
FIRST_NAME ||" || |
LAST_NAME |
'Joe Smith'
B'1100111 '|| |
B'01010011' |
'110011101010011'
"| | Asparagus |
'Asparges' |
'Asparges' ||
" |
" Asparges " |
'As' || '||
' par '|| "|| |
'agus' |
'Sparris'
Om du sammanfogar en sträng till en sträng med noll längd, är resultatet detsamma som originalsträngen. |
Numeriska värdeuttryck |
numeriska värdeuttryck,
kan du ange addition, subtraktion, multiplikation och divisionoperatörer till numeriska data. Uttrycket måste minska till ett numeriskt värde. Komponenterna i ett numeriskt värdeuttryck kan ha olika datatyper så länge som
alla datatyperna är numeriska. Resultatets datatyp beror på datatyperna för komponenterna från vilka du erhåller resultatet. Ändå specificerar inte SQL-standarden noggrant vilken typ som kommer från någon specifik kombination av källuttryckskomponenter. Det beror på skillnaderna mellan hårdvaruplattformar.Kontrollera dokumentationen för din specifika plattform när du blandar numeriska datatyper. Här är några exempel på numeriska värdeuttryck: -27
49 + 83
5 * (12-3)
-
PROTEIN + FAT + CARBOHYDRATE
-
FEET / 5280
-
COST *: multiplikatorA
-
Deltidsvärdesuttryck
-
Deltidsvärdesuttryck
-
utför operationer på data som behandlar datum och tider. Dessa värde uttryck kan innehålla komponenter som är av typen DATE, TIME, TIMESTAMP eller INTERVAL. Resultatet av ett datetime-värdeuttryck är alltid en datetime-typ (DATE, TIME eller TIMESTAMP). Följande uttryck ger till exempel datumet en vecka från idag:
CURRENT_DATE + INTERVAL '7' DAY
Tiderna bibehålls i Universal Time Coordinated (UTC) - känd i Storbritannien som Greenwich Mean Time - men du kan ange en förskjutning för att göra tiden korrigerad för en viss tidszon. För ditt systems lokala tidszon kan du använda den enkla syntaxen som ges i följande exempel: TIME '22: 55: 00 'I LOKALT
Alternativt kan du ange detta värde långt:
TIME '22: 55: 00 'TIDSZON INTERVAL' -08. 00 'HOUR TO MINUTE
Detta uttryck definierar lokal tid som tidszon för Portland, Oregon, vilket är åtta timmar tidigare än Greenwich, England.
Intervallvärdesuttryck
Om du subtraherar en datetime från en annan får du ett intervall på
Att lägga till en datetime till en annan gör ingen mening, så SQL tillåter dig inte att göra det. Om du lägger till två intervall tillsammans eller subtraherar ett intervall från ett annat intervall, är resultatet ett intervall. Du kan också antingen multiplicera eller dela ett intervall med en numerisk konstant.
SQL har två typer av intervall: årsmånad och
dagtid. För att undvika tvetydigheter måste du ange vilken som ska användas i ett intervalluttryck. Följande uttryck ger till exempel intervallet i år och månader tills du når pensionsåldern: (BIRTHDAY_65 - CURRENT_DATE) ÅR TILL MÅNADEN Följande exempel ger ett intervall på 40 dagar: INTERVAL'17 "DAG + INTERVAL" 23 DAG
Exemplet som följer följer det totala antalet månader som en mamma på fem har varit gravid (förutsatt att hon för närvarande inte förväntar sig nummer sex!):
INTERVAL "9 MÅNAD * 5
Intervaller kan vara negativa såväl som positiva och kan bestå av valfritt uttryck eller kombination av värdeuttryck som utvärderas till ett intervall.
Förutsättningar för villkorligt värde
Värdet på ett
villkorligt värdeuttryck