ďťż
 
[MS SQL] Odpowiednik sybasowego LIST ďťż
 
[MS SQL] Odpowiednik sybasowego LIST
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

[MS SQL] Odpowiednik sybasowego LIST



S. - 24-01-2007 00:02
[MS SQL] Odpowiednik sybasowego LIST
  Witam, czy w MSSQL jest cos takiego jak odpowiednik LIST z sybase? Czyli
wbudowana f-cja, która zwraca listę wartości oddzieloną przecinkami? Np. SELECT
LIST( NAZWA_UZ ) FROM UZYTKOWNICY zwroci jeden wiersz z nazwami uzytkownikow
przedzielonymi przecinkiem.

Pozdrawiam, S.

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl





Grzesiek G. - 24-01-2007 00:02

  S. napisał(a):
> Witam, czy w MSSQL jest cos takiego jak odpowiednik LIST z sybase? Czyli
> wbudowana f-cja, która zwraca listę wartości oddzieloną przecinkami? Np. SELECT
> LIST( NAZWA_UZ ) FROM UZYTKOWNICY zwroci jeden wiersz z nazwami uzytkownikow
> przedzielonymi przecinkiem.
>
>
> Pozdrawiam, S.
>
AIK nie.

Pozdrawiam

--
Grzegorz Gruza
Odpowiadając usuń "spamerom_nie." z adresu!!!




Marcin A. Guzowski - 24-01-2007 00:02

  S. napisał(a):
> Witam, czy w MSSQL jest cos takiego jak odpowiednik LIST z sybase? Czyli
> wbudowana f-cja, która zwraca listę wartości oddzieloną przecinkami? Np. SELECT
> LIST( NAZWA_UZ ) FROM UZYTKOWNICY zwroci jeden wiersz z nazwami uzytkownikow
> przedzielonymi przecinkiem.

Nie ma. W MSSQLu takie rzeczy piszemy sobie sami.

--
Pozdrawiam,
Marcin Guzowski
http://guzowski.info




Gsue - 24-01-2007 00:02

 
Użytkownik "S." <sylseb@poczta.onet.pl> napisał w wiadomości
news:4e54.000000da.45b61a6c@newsgate.onet.pl...
> Witam, czy w MSSQL jest cos takiego jak odpowiednik LIST z sybase? Czyli
> wbudowana f-cja, która zwraca listę wartości oddzieloną przecinkami? Np.
> SELECT
> LIST( NAZWA_UZ ) FROM UZYTKOWNICY zwroci jeden wiersz z nazwami
> uzytkownikow
> przedzielonymi przecinkiem.
>
>
> Pozdrawiam, S.
>
> --
> Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Witaj,
AFAIK nie.
Kłania się kursor i ręczne oprogramowanie.

Pozdrawiam
Gsue





Grzegorz Danowski - 25-01-2007 00:01

  "Gsue" <gsue44@wp.pl> wrote in message
news:ep5q3f$h9b$1@nemesis.news.tpi.pl...
>
>> Witam, czy w MSSQL jest cos takiego jak odpowiednik LIST z sybase? Czyli
>> wbudowana f-cja, która zwraca listę wartości oddzieloną przecinkami? Np.

> AFAIK nie.
> Kłania się kursor i ręczne oprogramowanie.
>

A w SQL 2005 można zaprząc do tego jakiś język .netowy (c#, vb.net), co
pewnikiem będzie z korzyścią dla szybkości działania jak i przejrzystości
kodu.
--
Pozdrawiam
Grzegorz




Gsue - 25-01-2007 00:01

 
Użytkownik "Grzegorz Danowski" <gdn__na@serwerze__poczta.onet.pl> napisał w
wiadomości news:ep71q1$egi$1@inews.gazeta.pl...
> "Gsue" <gsue44@wp.pl> wrote in message
> news:ep5q3f$h9b$1@nemesis.news.tpi.pl...
>>
>>> Witam, czy w MSSQL jest cos takiego jak odpowiednik LIST z sybase? Czyli
>>> wbudowana f-cja, która zwraca listę wartości oddzieloną przecinkami? Np.
>
>> AFAIK nie.
>> Kłania się kursor i ręczne oprogramowanie.
>>
>
> A w SQL 2005 można zaprząc do tego jakiś język .netowy (c#, vb.net), co
> pewnikiem będzie z korzyścią dla szybkości działania jak i przejrzystości
> kodu.
> --
> Pozdrawiam
> Grzegorz

Moja szklana kula wskazuje na gorzką ironię wypowiedzi :-(
Niestety nie mam innego rozwiązania na stworzenie takiej listy niż
przebiegnięcie całego zbioru kursorem. (oprócz zrobienia tego samego w
kodzie dla net'a oraz procedury rozszerzonej dla wcześniejszych wersji
serwera ).
Pomijam tu sensowność/konieczność tworzenia takiego rozwiązania.
Będę wdzięczny za podpowiedź jak można to zrobić inaczej.

Pozdrawiam
Gsue / też Grzegorz zresztą /




sylseb@poczta.onet.pl - 25-01-2007 00:01

 
> Witaj,
> AFAIK nie.
> Kłania się kursor i ręczne oprogramowanie.

No to chyba musze sie mu odklonic grzecznie, bo niestety moim zadaniem bylo
zraportowac cos z istniejacego systemu.

S.

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl




Grzesiek G. - 25-01-2007 00:01

  Gsue napisał(a):
> Użytkownik "Grzegorz Danowski" <gdn__na@serwerze__poczta.onet.pl> napisał w
> wiadomości news:ep71q1$egi$1@inews.gazeta.pl...
>
>>"Gsue" <gsue44@wp.pl> wrote in message
>>news:ep5q3f$h9b$1@nemesis.news.tpi.pl...
>>
>>>>Witam, czy w MSSQL jest cos takiego jak odpowiednik LIST z sybase? Czyli
>>>>wbudowana f-cja, która zwraca listę wartości oddzieloną przecinkami? Np.
>>
>>>AFAIK nie.
>>>Kłania się kursor i ręczne oprogramowanie.
>>>
>>
>>A w SQL 2005 można zaprząc do tego jakiś język .netowy (c#, vb.net), co
>>pewnikiem będzie z korzyścią dla szybkości działania jak i przejrzystości
>>kodu.
>>--
>>Pozdrawiam
>>Grzegorz
>
>
> Moja szklana kula wskazuje na gorzką ironię wypowiedzi :-(
> Niestety nie mam innego rozwiązania na stworzenie takiej listy niż
> przebiegnięcie całego zbioru kursorem. (oprócz zrobienia tego samego w
> kodzie dla net'a oraz procedury rozszerzonej dla wcześniejszych wersji
> serwera ).
> Pomijam tu sensowność/konieczność tworzenia takiego rozwiązania.
> Będę wdzięczny za podpowiedź jak można to zrobić inaczej.

Można bez kursora:
DECLARE @o VARCHAR(2000)

SET @o = ''

SELECT
@o = @o + Value + ','
FROM tabela
WHERE ...
ORDER BY ...

IF LEN(@o) > 1
BEGIN
SET @o = SUBSTRING(@o, 1, LEN(@o)-1)
END

RETURN @o

Gdzie Value jest kolumną znakową. Ale nie wiem, czy to jest szybsze i
lepsze od kursora:-).

Pozdrawiam

--
Grzegorz Gruza
Odpowiadając usuń "spamerom_nie." z adresu!!!




Robert Winkler - 25-01-2007 00:01

  >> A w SQL 2005 można zaprząc do tego jakiś język .netowy (c#, vb.net), co
>> pewnikiem będzie z korzyścią dla szybkości działania jak i przejrzystości
>> kodu.
>> --
>> Pozdrawiam
>> Grzegorz
>
> Moja szklana kula wskazuje na gorzką ironię wypowiedzi :-(

Propozycja zastosowania w SQL2005 innych języków niż T-SQL
wcale nie była ironią ze strony Grzegorza.
Tak właśnie teraz sie robi w nowym SQL'u
i jest to zdecydowanie szybsze w działąniu niż rzeźba z T-SQL'u.

Przykład agregatora jakiego szuka S.:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Collections.Generic;
using System.Text;

[Serializable]
[Microsoft.SqlServer.Server.SqlUserDefinedAggregate (Format.Native)]
public struct LIST
{
public void Init()
{
_list = new List<string>();
}

public void Accumulate(SqlString Value)
{
if (Value.IsNull)
_list.Add("NULL");
else
_list.Add(string.Format("'{0}'", Value.Value));
}

public void Merge(LIST Group)
{
_list.AddRange(Group._list);
}

public SqlString Terminate()
{
string[] strArray = _list.ToArray();
string result = string.Join(", ", strArray);
return new SqlString(result);
}

private List<String> _list;
}

--
____________
Robert Winkler




Maciej =?iso-8859-2?Q?=A3uszczy=F1ski?= - 25-01-2007 00:01

  >> SELECT
>> LIST( NAZWA_UZ ) FROM UZYTKOWNICY zwroci jeden wiersz z nazwami
>> uzytkownikow
>> przedzielonymi przecinkiem.
>>
> AFAIK nie.
> Kłania się kursor i ręczne oprogramowanie.

Witam.

Po co od razu kursor? Mozna tak:

DECLARE @Uzytkownicy varchar(1000)
SET @Uzytkownicy = ''
SELECT @Uzytkownicy = @Uzytkownicy + Nazwa_Uz + ','
FROM Uzytkownicy

Pamietac trzeba tylko o zadeklarowaniu zmiennej odpowiedniej dlugosci (przy
dluzszych stringach moze byc problem, bo nie mozna deklarowac zmiennych
typu text).

Pozdrawiam
Maciek
--
*** A czym się różni Cray od normalnego peceta?
*** Tym, że Cray wykonuje pętle nieskończone w 10 sekund.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?= =?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?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?= [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= =?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?= [Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?= =?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?= [oracle] - Oracle SQL Developer - co to jest SID? =?ISO-8859-2?Q?[Oracle]_Wywo=B3anie_skryptu_sh_z_PL/SQL-a=3F=3F?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • ptsite.xlx.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