T-SQL
Диалект языка программирования SQLT-SQL или Transact-SQL — диалект SQL, реализуемый компанией Microsoft в своих продуктах Microsoft SQL Server
Примеры:
Числа Фибоначчи:
Пример для версий Microsoft SQL Server 2005, Microsoft SQL Server 2008 R2, Microsoft SQL Server 2012Используется возможность рекурсивных запросов. Кол-во членов ряда — 92
declare @max_n tinyint = 92
;with t as (
select n = 1, fib = convert(bigint,1), xfib = convert(bigint,0)
union all
select n = n+1, fib = fib+xfib, xfib = fib from t
where n < @max_n
)
select fib from t
Числа Фибоначчи:
Пример для версий Microsoft SQL Server 2005, Microsoft SQL Server 2008 R2, Microsoft SQL Server 2012Используется итеративное определение чисел Фибоначчи, реализованное через рекурсивный запрос. Каждая строка запроса содержит два соседних числа последовательности, и следующая строка вычисляется как (последнее число, сумма чисел) предыдущей строки. Таким образом все числа, кроме первого и последнего, встречаются дважды, поэтому в результат входят только первые числа каждой строки.
with fibonacci(a, b) as
(
select 1, 1
union all
select b, a+b from fibonacci where b < 1000
)
SELECT cast(a as varchar)+', ' AS [text()]
FROM fibonacci
FOR XML PATH ('')
Факториал:
Пример для версий Microsoft SQL Server 2005declare @max_n tinyint = 20
;with t as (
select 1 as n, convert(bigint,1) as f
union all
select n+1, f*(n+1) from t
where n < @max_n
)
select convert(varchar,n)+'! = '+convert(varchar(32),f)+', '
from t as [text]
FOR XML PATH ('')
Комментарии
]]>blog comments powered by Disqus
]]>