Ota yhteyttä

Kääritään hihat ja tehdään tuloksia!

Lähetä meille viesti

SQL-kyselyissä tulee ajoittain tarvetta pilkkoa jonkin kentän sisältöä palasiksi. SQL Serverin versiosta 2016 alkaen T-SQL tarjoaa sisäisen funktion pilkkomisen tekemiseen. Lisäksi kannan compatibility level -asetus pitää olla vähintään 130, jotta tuo sisäinen string_split -funktio löytyy ja on käytettävissä.

String_split -funktion käyttö on hyvin suoraviivaista; parametreiksi annetaan pilkottava merkkijono sekä erotinmerkki. Funktio palauttaa yksisarakkeisen taulun, jossa pilkotut merkkijonon alkiot ovat value -nimisessä kentässä.

Helppo käyttöesimerkki on datan suodattaminen. Alla olevassa kyselyssä on Customer -taulusta suodatettu mukaan ne rivit, joiden id -kentän arvo on @test -merkkijonon sisällä.

Entäpä sitten aikaisemmissa Sql Serverin versioissa, joissa sisäistä funktiota ei ole tarjolla? Ainut tapa saada vastaava toiminnallisuus on tehdä oma funktio. Alla on esimerkkitoteutus funktiosta. Mukana on myös muutama lisäominaisuus; OrderNbr ja Trim.

Oman funktion käyttö on hyvin samanlaista kuin sisäisen string_split -funktion käyttö. Alla vastaava haku kuin ensimmäisessä esimerkissä.

Tässä esimerkissä on otettu mukaan myös oman funktion tarjoama OrderNbr -kenttä, josta nähdään monesko alkio on kyseessä.