Dość często słyszę, że na rozmowach kwalifikacyjnych na stanowisko programisty dostaje się zadanie p.t. odwrócenie STRINGa. Oczywiście nie chodzi tu o użycie istniejącej funkcji, ale o napisanie swojej. I tu w ramach fascynacji
CTE pomyślałem, że może zrobić to w T-SQL ale za pomocą pojedynczego zapytania. No i wyszło mi coś takiego :
DECLARE @STRING AS VARCHAR(8000);
SET @STRING = '123456789';
WITH CTE
AS
(
SELECT CAST(RIGHT(@STRING, 1) AS VARCHAR(8000)) AS REVERSE_STRING
, DATALENGTH(@STRING) - 1 AS I
UNION ALL
SELECT REVERSE_STRING + RIGHT(LEFT(@STRING, I), 1)
, I - 1
FROM CTE
WHERE I > 0
)
SELECT REVERSE_STRING
FROM CTE
WHERE I = 0
OPTION(MAXRECURSION 8000);
Brak komentarzy:
Prześlij komentarz