|
| 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
| |
|
|