ďťż
 
[tsql] funkcja laczaca stringi ďťż
 
[tsql] funkcja laczaca stringi
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[tsql] funkcja laczaca stringi



Sławek Mróz - 03-07-2007 00:04
[tsql] funkcja laczaca stringi
  Witam!

Potrzebuje sobie napisac funcyjke dla MS SQL Servera laczaca dane z pola
typu varchar w jeden string, rozdzielone wskazanym separatorem. Idealnie
byloby, gdyby dzialala na podobnej zasadzie, jak systemowe typu AVG() czy
SUM().

Czyli:

Mamy tabelke o nazwie imiona zamierajaca kolumne "imie" z wartosciami:
Tadek, Jurek, Bronek.

I wywolanie takiej funkcji odbywaloby sie nastepujaco:
np
select funcja(imie,';') from imiona

i w efekcie zwrocony bylby taki string:

Tadek;Jurek;Bronek

Czy ktos probowal robic takie rzeczy i moze podzielic sie wskazowkami?

Dzieki z gory
Pozdrawiam
Slawek





Grzegorz Danowski - 03-07-2007 00:04

  "Sławek Mróz" <slmroz@_wytnij_wp.pl> wrote in message
news:f6bl8e$p9h$1@inews.gazeta.pl...
> Potrzebuje sobie napisac funcyjke dla MS SQL Servera laczaca dane z pola
> typu varchar w jeden string, rozdzielone wskazanym separatorem. Idealnie
> byloby, gdyby dzialala na podobnej zasadzie, jak systemowe typu AVG() czy
> SUM().
>
> Czyli:
>
> Mamy tabelke o nazwie imiona zamierajaca kolumne "imie" z wartosciami:
> Tadek, Jurek, Bronek.
>
> I wywolanie takiej funkcji odbywaloby sie nastepujaco:
> np
> select funcja(imie,';') from imiona
>
> i w efekcie zwrocony bylby taki string:
>
> Tadek;Jurek;Bronek
>
> Czy ktos probowal robic takie rzeczy i moze podzielic sie wskazowkami?

Np.:

Declare @Result Varchar(Max)

Select @Result = Case When @Result Is Null Then imie
Else @Result + ';' + imie End
From imiona
Select @Result

--
Pozdrawiam
Grzegorz




Grzegorz Danowski - 03-07-2007 00:04

  "Grzegorz Danowski" <gdn__na@serwerze__poczta.onet.pl> wrote in message
news:f6bv7q$a77$1@inews.gazeta.pl...
>> Potrzebuje sobie napisac funcyjke dla MS SQL Servera laczaca dane z pola
>> typu varchar w jeden string, rozdzielone wskazanym separatorem. Idealnie

> Np.:
>
> Declare @Result Varchar(Max)
>
> Select @Result = Case When @Result Is Null Then imie
> Else @Result + ';' + imie End
> From imiona

Albo nieco krócej:
Select @Result = IsNull(@Result + ';','') + imie
From imiona
--
Pozdrawiam
Grzegorz




Sławek Mróz - 04-07-2007 00:01

  >
>> Np.:
>>
>> Declare @Result Varchar(Max)
>>
>> Select @Result = Case When @Result Is Null Then imie
>> Else @Result + ';' + imie End
>> From imiona
>
> Albo nieco krócej:
> Select @Result = IsNull(@Result + ';','') + imie
> From imiona

Ooo, to mi sie podoba, bardzo zgrabne :-)

Dzieki

Pozdrawiam
Slawek





Sławek Mróz - 04-07-2007 00:01

  >>> Declare @Result Varchar(Max)
>>>
>>> Select @Result = Case When @Result Is Null Then imie
>>> Else @Result + ';' + imie End
>>> From imiona
>>
>> Albo nieco krócej:
>> Select @Result = IsNull(@Result + ';','') + imie
>> From imiona
>
> Ooo, to mi sie podoba, bardzo zgrabne :-)

Mam jeszcze pytanko:
A wiecie moze, jak ubrac to w zgrabna, elastyczna funkcyjke, tak zeby mozna
bylo uzywac jej do roznych kolumn i roznych tabel (wlasnie na wzor funkcji
systemowych)?

Pozdr
Slawek




Grzegorz Danowski - 04-07-2007 00:01

  "Sławek Mróz" <slmroz@_wytnij_wp.pl> wrote in message
news:f6csea$p4c$1@inews.gazeta.pl...
> A wiecie moze, jak ubrac to w zgrabna, elastyczna funkcyjke, tak zeby
> mozna bylo uzywac jej do roznych kolumn i roznych tabel (wlasnie na wzor
> funkcji systemowych)?

Jeśli masz wersję 2005, to może warto utworzyć własną funkcję agregującą w
c# (poszukaj na google hasła clr user defined aggregates). Opis tego
sposobu, a także innych bardziej tradycyjnych znajdziesz tutaj:
http://www.projectdmx.com/tsql/rowconcatenate.aspx.
--
Pozdrawiam
Grzegorz
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Photoshop CS2 - funkcje, =?ISO-8859-2?Q?kt=F3rych_si=EA_nie_?==?ISO-8859-2?Q?spodziewasz=2E=2E=2E?= [PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?= =?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?= [PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?= postgres - ile razy wykona =?ISO-8859-2?Q?si=EA_funkcja_w_?==?ISO-8859-2?Q?zapytaniu?= [MySQL] Load data infile i =?ISO-8859-2?Q?u=BFycie_funkcji_r?==?ISO-8859-2?Q?eplace?= [PGSQL] Funkcje =?ISO-8859-2?Q?zwracaj=B1ce_=27rowset=27_i_?==?ISO-8859-2?Q?tabele_tymczasowe?= =?iso-8859-2?q?Sybase_jak_wyci=B1gn=B1=E6_dane_generowane_prz ez_funkcje?= =?iso-8859-2?q?[Mysql_5=2E0]_Wywo=B3ywanie_procedury_jako_parametr_funkcji?= [MySQL5] problem z zastosowanie funkcji, procedury w celu unikniecia powtórzeń kodu w zapytaniach
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • shutter.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com