Keresés

Új hozzászólás Aktív témák

  • martonx

    veterán

    válasz gabó #761 üzenetére

    Szia!

    Mennyi az az x oszlop? 3 vagy 500? Ha 3, akkor kérdezd le 3-szor. Ha 500, akkor írj egy tárolt eljárást, ami lekérdezi 500-szor felparaméterezve.

    Másrészt biztos ezt akarod? Nem tudom mi az az alap problematika, amit ilyen elcseszett tábla szerkezettel lehet megoldani, de biztos van rá jobb megoldás.

    Én kérek elnézést!

  • Atcom

    csendes tag

    válasz gabó #761 üzenetére

    Egy Transact-SQL szösszenet:

    create table #tmpString
    (
    nID int identity(1,1) not null,
    cColumn01 varchar(512),
    cColumn02 varchar(512),
    cColumn03 varchar(512)
    )

    insert into #tmpString
    (cColumn01, cColumn02, cColumn03)
    values
    ('ajkfiemndiewnnsd,iewjendsncpwqe', 'ndnaseondcsnnwifdscnoewfnnxasoqwebc', '824dsladnan84ernlsnd32lndal'),
    ('dskdjlfrbv.xcmy.cmpewruwed pskqdaső3ö4urjfdlsac', 'nldfcsarhjöwjadaljdfwöerjqdfhzr', 'df 9r ö2jqwpdkapádkarfjhöw xo'),
    (',asdfwriwepjdfcslanc9wzrigvbksjfnwoeirztgfbsckxlfhjreoj', 'dwoiru23öpjdéscmnweruwéj', 'cwéoiujwöx qwmd ewruö xwoédfjqwe w98r ')


    declare
    @cText varchar(max),
    @nI int

    declare @tblLetters table
    (
    cChar char(1)
    )

    declare curProcess cursor dynamic for
    select
    isnull(S.cColumn01, '')+isnull(S.cColumn02, '')+isnull(S.cColumn03, '')
    from
    #tmpString S

    open curProcess
    fetch next from curProcess into @cText

    while @@fetch_status = 0
    begin
    set @nI = 1
    while @nI <= len(@cText)
    begin
    insert into @tblLetters (cChar) values (substring(@cText, @nI, 1))
    set @nI = @nI+1
    end
    fetch next from curProcess into @cText
    end

    close curProcess
    deallocate curProcess
    drop table #tmpString

    select
    L.cChar, nCount = count(*)
    from
    @tblLetters L
    group by
    L.cChar
    order by
    cChar

    [ Szerkesztve ]

Új hozzászólás Aktív témák