Funkcja jest bardzo prosta: obcina z obu stron: ltrim rtrim kolumnę z napisem, a następnie otrzymujemy długość napisu funkcją LEN. Gdy już posiadamy długość napisu to wykonujemy zapytanie WHERE LEN(Kolumna) = największa długość napisu.
Zatem to dzieła:
CREATE FUNCTION [dbo].[GetMaxLenghtString]() RETURNS TABLE AS RETURN ( SELECT LEN(Title) as Lenght,Title FROM Books WHERE LEN(Title) = (SELECT max(len(ltrim(rtrim(Title)))) from Books) ) GO
Żeby zobaczyć wynik musimy wykonać odpowiednie zapytanie:
select * from GetMaxLenghtString()
Funkcja ta zwróci najdłuższy napis. Gdy będzie kilka takich napisów wynikowa tabela będzie zawierać kilka wierszy. Można doprawić do smaczku funkcję aby zwracała 1 wartość umieszczająć po SELECT klauzulę DISTINCT.
Dziękuję.
0 comments:
Post a Comment