sql >> Database teknologi >  >> RDS >> Sqlserver

Parse brugbar vejadresse, by, stat, postnummer fra en streng

Jeg har arbejdet meget med denne form for parsing. Fordi der er fejl, får du ikke 100% nøjagtighed, men der er et par ting, du kan gøre for at komme det meste af vejen dertil, og derefter lave en visuel BS-test. Her er den generelle måde at gøre det på. Det er ikke kode, for det er ret akademisk at skrive det, der er ingen underlighed, bare masser af strenghåndtering.

(Nu hvor du har indsendt nogle eksempeldata, har jeg lavet nogle mindre ændringer)

  1. Arbejd baglæns. Start fra postnummeret, som vil være nær slutningen, og i et af to kendte formater:XXXXX eller XXXXX-XXXX. Hvis dette ikke vises, kan du antage, at du er i byen, delstatsdelen nedenfor.
  2. Den næste ting, før zip, vil være staten, og den vil enten være i et format med to bogstaver eller som ord. Du ved også, hvad disse vil være - der er kun 50 af dem. Du kan også soundex ordene for at hjælpe med at kompensere for stavefejl.
  3. før det er byen, og det er sandsynligvis på samme linje som staten. Du kan bruge en postkodedatabase at tjekke byen og staten baseret på zip, eller i det mindste bruge den som en BS-detektor.
  4. Gadeadressen vil generelt være en eller to linjer. Den anden linje vil generelt være suitenummeret, hvis der er et, men det kan også være en postboks.
  5. Det bliver næsten umuligt at finde et navn på den første eller anden linje, men hvis det ikke er foranstillet med et tal (eller hvis det er foranstillet med et "attn:" eller "attention to:" kan det give dig et hint om, hvorvidt det er et navn eller en adresselinje.

Jeg håber, at dette hjælper lidt.



  1. Kan jeg bruge en kolonne, jeg har valgt senere i en forespørgsel?

  2. Returner en liste over databasemail-profiler i SQL Server (T-SQL)

  3. Sådan benchmarker du MySQL &MariaDB's ydeevne ved hjælp af SysBench

  4. find det N-te største element i SQL