SQL konverter varchar til numerisk

SQL konverter varchar til numerisk

Konvertering er en utbredt oppgave for programmerere og databaseingeniører. Denne artikkelen vil utforske hvordan du konverterer en Varchar -type til en numerisk type i standard SQL.

Det må tas i betraktning at når vi sier standard SQL, mener vi teknikker og metoder universelt vedtatt av relasjonsdatabasemotorer.

SQL Cast Method

I standard SQL oppnås typekasting ved å bruke cast () -funksjonen. Funksjonssyntaksen er som vist:

Støpt (uttrykk som t_type [(lengde)]);

Funksjonen tar tre hovedparametere:

  1. Uttrykket refererer til enhver verdi som kan konverteres til en spesifisert type.
  2. T -type refererer til datatypen som den spesifiserte verdien skal konverteres til: Måltypen kan omfatte hvilken som helst støttet standard SQL -type som INT64, Numerisk, Bignumerisk, dato, streng, byte, datetime, tid, struktur, matrise, tidsstempel, etc.
  3. Lengde - Den tredje parameteren er lengde. Dette er en valgfri parameter som spesifiserer lengden på måltypen.

SQL konverter varchar til int

Tenk på eksemplet nedenfor som konverterer varchar -type til en INT64 -type.

Velg Cast ('344' som int64);

Eksempelforespørselen skal returnere verdien som er konvertert til Int som vist:

int4
------
344

SQL konverter varchar til numerisk

For å konvertere en varchar -type til en numerisk type, endrer du måltypen som numerisk eller bignumerisk som vist i eksemplet nedenfor:

Velg Cast ('344' som numerisk) som numerisk;
Velg Cast ('344' som Bignumeric) som Big_numeric;

Spørsmålene ovenfor skal returnere den spesifiserte verdien som er konvertert til numerisk og stor numerisk.

Merk at for å sikre at databasemotoren din støtter måltypen din; Ellers vil det returnere en feil.

SQL konverter varchar til å flyte

Hvis du har flytende punkt varchar, kan du konvertere den til en flottørtype, som vist i eksemplet nedenfor:

Velg Cast ('3.14159 'som float) som float;

Koden skal returnere float -typen til den spesifiserte varcharen. Eksempelutgang er som vist nedenfor:

FLYTE
---------
3.14159
(1 rad)

SQL Safe Casting

Har du lurt på hva som skjer hvis du prøver å konvertere en ikke-numerisk streng til en numerisk type? Tenk på eksemplet nedenfor:

Velg Cast ('Hallo' som int64) som var;

Hvis du prøver å kjøre spørringen ovenfor, vil den mislykkes, da den spesifiserte varchar -typen ikke kan konverteres til int.

For å forhindre at spørringen svikter hvis konverteringen ikke støttes, kan vi bruke Safe_cast -metoden.

Funksjonen oppfører seg på samme måte som støpefunksjonen, bortsett fra at den ikke mislykkes hvis konverteringen mislykkes. I stedet returnerer den null som vist i eksemplet nedenfor:

Velg Safe_cast ('Hallo' som int64) som NAN;

I stedet for en feil, bør spørringen ovenfor komme tilbake:

"Nan": Null

MERK: Safe_cast -metoden støttes i standard SQL. Noen databasemotorer kan implementere prosedyrene annerledes. For eksempel, i SQL Server, blir Safe_cast () -funksjonen omdøpt til Try_cast eller Try_Convert.

Konklusjon

I denne opplæringen diskuterte vi hvordan du utfører type-casting i standard SQL. For eksempel diskuterte vi konvertering av varchar til int64, numerisk, bignumerisk og float64. Vi dekket også hvordan vi skal utføre sikker støping for scenarier der typen-casting kan føre til en feil.