3 proste przykłady funkcji w MS SQL 2012.
1 przykład to własna implementacja funkcji Replicate (lekka zmiana założenia nieco jednak różni ją od Replicate).
Funkcja generuje n „*”, gdzie n jest przekazywane w parametrze. Kod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | CREATE FUNCTION repl ( @param1 INT ) RETURNS nvarchar(255) AS BEGIN DECLARE @i INT=0; DECLARE @w AS nvarchar(255)='' WHILE( @i<@param1 ) BEGIN SET @w= CONCAT(@w,'*') SET @i=@i+1 END RETURN @w END |
Druga funkcja zwraca wszystkie możliwie wystąpienia litery w podanym stringu w formie jednokolumnowej tabeli.
Kod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ALTER FUNCTION indexess ( @param1 nvarchar(255), @param2 nvarchar ) RETURNS @q TABLE (Occ INT) AS BEGIN DECLARE @i INT=1 WHILE( @i<= len(@param1) ) BEGIN IF SUBSTRING(@param1,@i,1) = @param2 BEGIN INSERT INTO @q VALUES(@i) END SET @i=@i+1 END RETURN END |
Ostatni przykład to dość abstrakcyjna funkcja która odwraca dwa stringi (reverse) i łączy je przeplatając ich znaki.
Wejście: abcdefghij i 0123456789
Wyjście: j9i8h7g6f5e4d3c2b1a0
Kod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | ALTER FUNCTION absss ( @a nvarchar(10), @b nvarchar(10) ) RETURNS nvarchar(20) AS BEGIN DECLARE @wynik nvarchar(20)='' DECLARE @aa nvarchar(10) = reverse(@a) DECLARE @bb nvarchar(10) = reverse(@b) DECLARE @i INT=0 WHILE( @i <= len(@aa) ) BEGIN SET @wynik = concat(@wynik,SUBSTRING(@aa,@i,1) , SUBSTRING(@bb,@i,1)) SET @i=@i+1 END RETURN @wynik END |
Enjoy ;)
Oj daaawnoo mnie tu nie było. Ale wakacje to był czas dużej liczby intensywnych wyjazdów i tak naprawdę, dopiero jakoś… Read More
Cześć! Zapraszam na krótkie podsumowanie kwietnia. Wyjazd do Niemiec A dokładniej pod granicę z Francją. Chrześnica miała pierwszą komunię. Po… Read More
Ostatnio tygodnie były tak bardzo wypełnione, że nie udało mi się napisać nawet krótkiego podsumowanie. Więc dziś zbiorczo podsumuję luty… Read More
Zapraszam na krótkie podsumowanie miesiąca. Książki W styczniu przeczytałem "Homo Deus: Historia jutra". Książka łudząco podoba do wcześniejszej książki tego… Read More
Cześć! Zapraszam na podsumowanie roku 2023. Książki Zacznijmy od książek. W tym roku cel 35 książek nie został osiągnięty. Niemniej… Read More
Zapraszam na krótkie podsumowanie miesiąca. Książki W grudniu skończyłem czytać Mein Kampf. Nudna książka. Ciekawsze fragmenty można by było streścić… Read More