/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MySQL hvordan slå sammen 2 felt i en spørr~
Fra : Ove Lie


Dato : 01-04-08 20:22

Har en tabel (pameldte) med bl.a. feltene "tlf" og "tlf_f"

tlf er valgfritt, men inneholder bare 8 sifrede telefonnummer eller verdien
0
tlf_f er obligatorisk, men ingen nøkkel, og inneholder 8 sifrede
telefonnummer.

Er det mulig å skrive en spørring som slår sammen disse 2 feltene og
returnerer resultatet uten dubletter?

Hadde jo og vært kjekt om det bare kom ut mobilnummer (4xxxxxxx og
9xxxxxxx), og semikolonseparert i ett felt, men det har ingen betydning bare
jeg greier å få ut det øverste ønsket.


-Ove



 
 
Martin (01-04-2008)
Kommentar
Fra : Martin


Dato : 01-04-08 21:01

Ove Lie wrote:
> Har en tabel (pameldte) med bl.a. feltene "tlf" og "tlf_f"
>
> tlf er valgfritt, men inneholder bare 8 sifrede telefonnummer eller verdien
> 0
> tlf_f er obligatorisk, men ingen nøkkel, og inneholder 8 sifrede
> telefonnummer.
>
> Er det mulig å skrive en spørring som slår sammen disse 2 feltene og
> returnerer resultatet uten dubletter?
>
> Hadde jo og vært kjekt om det bare kom ut mobilnummer (4xxxxxxx og
> 9xxxxxxx), og semikolonseparert i ett felt, men det har ingen betydning bare
> jeg greier å få ut det øverste ønsket.

SELECT
DISTINCT CASE tlf
WHEN 0 THEN
tlf_f
ELSE
CONCAT_WS(';', tlf, tlf_f)
END AS output
FROM table

CONCAT_WS sætter første parameter imellem de næste parametre, så tlf og
tlf_f vil blive tlf;tlf_f

Det hele er testet, og det virker :)
Nu håber jeg så bare at det var det rigtige du ville frem til

Ove Lie (01-04-2008)
Kommentar
Fra : Ove Lie


Dato : 01-04-08 20:57

"Martin" <martin@aarhof.invalid> skrev i melding
news:47f2948f$0$90272$14726298@news.sunsite.dk...
> Ove Lie wrote:
>> Har en tabel (pameldte) med bl.a. feltene "tlf" og "tlf_f"
>>
>> tlf er valgfritt, men inneholder bare 8 sifrede telefonnummer eller
>> verdien 0
>> tlf_f er obligatorisk, men ingen nøkkel, og inneholder 8 sifrede
>> telefonnummer.
>>
>> Er det mulig å skrive en spørring som slår sammen disse 2 feltene og
>> returnerer resultatet uten dubletter?
>>
>> Hadde jo og vært kjekt om det bare kom ut mobilnummer (4xxxxxxx og
>> 9xxxxxxx), og semikolonseparert i ett felt, men det har ingen betydning
>> bare jeg greier å få ut det øverste ønsket.
>
> SELECT
> DISTINCT CASE tlf
> WHEN 0 THEN
> tlf_f
> ELSE
> CONCAT_WS(';', tlf, tlf_f)
> END AS output
> FROM table
>
> CONCAT_WS sætter første parameter imellem de næste parametre, så tlf og
> tlf_f vil blive tlf;tlf_f
>
> Det hele er testet, og det virker :)
> Nu håber jeg så bare at det var det rigtige du ville frem til

Takk, men ikke riktig det jeg ønsker.
prøver meg med et forenklet eksempel.
jeg ønsker

tlf | tlf_f
11111111|22222222
33333333|22222222

resultatet jeg ønsker skla være:

samlet
11111111
22222222
33333333

håper dette var mere forsåelig.

-Ove




Ove Lie (01-04-2008)
Kommentar
Fra : Ove Lie


Dato : 01-04-08 20:59

"Ove Lie" <ove.e.lie@c2i.net> skrev i melding
news:D5adnUmYUo_5C2_aRVnzvQA@telenor.com...
> "Martin" <martin@aarhof.invalid> skrev i melding
> news:47f2948f$0$90272$14726298@news.sunsite.dk...

> resultatet jeg ønsker skla være:
>
> samlet
> 11111111
> 22222222
> 33333333
>
evt: 11111111; 22222222; 33333333

-Ove



Martin (01-04-2008)
Kommentar
Fra : Martin


Dato : 01-04-08 22:07

Ove Lie wrote:
> "Martin" <martin@aarhof.invalid> skrev i melding
> news:47f2948f$0$90272$14726298@news.sunsite.dk...
>> Ove Lie wrote:
>>> Har en tabel (pameldte) med bl.a. feltene "tlf" og "tlf_f"
>>>
>>> tlf er valgfritt, men inneholder bare 8 sifrede telefonnummer eller
>>> verdien 0
>>> tlf_f er obligatorisk, men ingen nøkkel, og inneholder 8 sifrede
>>> telefonnummer.
>>>
>>> Er det mulig å skrive en spørring som slår sammen disse 2 feltene og
>>> returnerer resultatet uten dubletter?
>>>
>>> Hadde jo og vært kjekt om det bare kom ut mobilnummer (4xxxxxxx og
>>> 9xxxxxxx), og semikolonseparert i ett felt, men det har ingen betydning
>>> bare jeg greier å få ut det øverste ønsket.
>> SELECT
>> DISTINCT CASE tlf
>> WHEN 0 THEN
>> tlf_f
>> ELSE
>> CONCAT_WS(';', tlf, tlf_f)
>> END AS output
>> FROM table
>>
>> CONCAT_WS sætter første parameter imellem de næste parametre, så tlf og
>> tlf_f vil blive tlf;tlf_f
>>
>> Det hele er testet, og det virker :)
>> Nu håber jeg så bare at det var det rigtige du ville frem til
>
> Takk, men ikke riktig det jeg ønsker.
> prøver meg med et forenklet eksempel.
> jeg ønsker
>
> tlf | tlf_f
> 11111111|22222222
> 33333333|22222222
>
> resultatet jeg ønsker skla være:
>
> samlet
> 11111111
> 22222222
> 33333333
>
> håper dette var mere forsåelig.

Ja, men så svjv så kan det ikke lade sig gøre...
Evt så skal du prøve med noget subselect, men jeg har ikke kunne få det
til at virke.

Noget ala sådan her... men det virker ikke

SELECT
CONCAT_WS(';',
(
SELECT
t1.tlf
FROM
test AS t1
)
)
FROM
test

Peter Brodersen (01-04-2008)
Kommentar
Fra : Peter Brodersen


Dato : 01-04-08 22:22

On Tue, 1 Apr 2008 21:57:15 +0200, "Ove Lie" <ove.e.lie@c2i.net> wrote:

>tlf | tlf_f
>11111111|22222222
>33333333|22222222

En mulighed:

SELECT tlf FROM tabel
UNION
SELECT tlf_f FROM tabel

--
- Peter Brodersen
Kendt fra Internet

Søg
Reklame
Statistik
Spørgsmål : 177578
Tips : 31968
Nyheder : 719565
Indlæg : 6409072
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste