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 ;)
Cześć. Dziś luźny artykuł, bo dziś pobawimy się jedną z pierwszy wersji Pythona. Skompilujemy go i zobaczymy co tam w… Read More
Nowy rok czas zacząć! Więc lećmy z podsumowaniem. Nowy artykuł Nie uwierzycie, ale pojawił się na blogu nowy artykuł! Piszę… Read More
Cześć! W Pythonie 3.13 dodano JITa! JIT, czyli just-in-time compiler to optymalizacja na która Python naprawdę długo czekał. Na nasze… Read More
Cześć! Zapraszam na podsumowanie roku 2024. Książki W sumie rok 2024 był pod względem ilości książek nieco podobny do roku… Read More
Podtrzymując tradycję, prawie regularnych podsumowań, zapraszam na wpis! Nie mogło obyć się bez Karkonoszy We wrześniu odwiedziłem z kolegą Karkonosze,… Read More
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