Avatar billede tax Nybegynder
23. april 2002 - 10:58 Der er 10 kommentarer og
1 løsning

Typecasting

Jeg har et problem.

Jeg har en database, hvori der eksisterer to tabeller. De to tabeller har hver et fælles nummer, som bægge steder er gemt i varchar(9) format.

Dette fælles nummer skal jeg anvende til at slå op i bægge tabeller igennem en join søgning.

Problemet er blot at det tager en krig at gennemføre en tekstsammenligning, når der er 250K poster i den ene database og 22K i den anden.

Desuden er det uelegant at skulle anvende LIKE sammenligning ved alle mine søgninger.

Derfor er jeg interesseret i at caste de to tabellers fællesnævner fra varchar(9) til int(9).

Hvorledes gøres dette?

Jeg henter dataene ind i min database fra tekstfiler, og kan kun få nummeret ind i tabellerne, som varchar, da de er lagret i tekstfilerne som en streng (f.eks "102309")

Hvis jeg ændrer tabelfeltet til int(9) og derefter importerer tekstfilerne, bliver nummeret 0 i alle mine poster.


Er der mulighed for at caste igennem FILE IMPORT kaldet eller kan jeg caste fra mine to tabeller over i nogle nye?

Jeg er ked af at jeg ikke har overdrevet mange points at give af.

/TAX
Avatar billede erikjacobsen Ekspert
23. april 2002 - 11:07 #1
Det er da muligt at importere dem som tal, selv om de står som "7913".

Men står de i din tabel med "..." omkring?
Avatar billede tax Nybegynder
23. april 2002 - 11:08 #2
Ja
Avatar billede erikjacobsen Ekspert
23. april 2002 - 11:10 #3
Ok, har du mod på at lave det om til et tal, så skal vi gøre noget i denne
stil

Lav et nyt felt kald det fx xxx og giv det int(11)
lave en update hvor vi fjerner ".." erne og laver det til en int
fjerne det gamle felt
omdød det nye felt

Går du ind for backup :) ?
Avatar billede tax Nybegynder
23. april 2002 - 11:11 #4
Jeg lytter. Jeg har selvfølgelig backup.
Avatar billede tax Nybegynder
23. april 2002 - 11:12 #5
Tekstfilen ser således ud og det er det første nummer jeg skal lagre som int.

"000001103"," ","B›jning 90gr S. 3/8","Muffe-nippel","STK",1,17.25,"N"
"000001104"," ","B›jning 90gr S. 1/2","Muffe-nippel","STK",1,16.55,"N"
"000001106"," ","B›jning 90gr S. 3/4","Muffe-nippel","STK",1,35.75,"N"
"000001108"," ","B›jning 90gr S. 1","Muffe-nippel","STK",1,49.25,"N"
Avatar billede erikjacobsen Ekspert
23. april 2002 - 11:15 #6
En muffenibbel .... ja hvorfor ikke, 2 secs jeg laver lige en opskrift
Avatar billede erikjacobsen Ekspert
23. april 2002 - 11:25 #7
alter table t add column xxx int(11);

update t set xxx=mid(tal,2,9)+0;

alter table t drop column tal;

alter table t change column xxx tal int(11);
Avatar billede erikjacobsen Ekspert
23. april 2002 - 11:26 #8
Det forudsætter:

  din tabel hedder t
  det gamle felt hedder tal
  der står faktisk "..." onkring tallet i feltet
Avatar billede tax Nybegynder
23. april 2002 - 11:27 #9
THANX  - kom lige med et svar.. Mange bække små.
Avatar billede erikjacobsen Ekspert
23. april 2002 - 11:29 #10
Fortæl os lige om det virker...

En anden gang så spørg lige om du ikke kan klare det allerede ved import af date
Avatar billede tax Nybegynder
23. april 2002 - 11:40 #11
Det fungerer!!! THANX!!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester