Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL функции - факториел

Нерекурсивен начин

;With Nums As
(
select ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS RN
FROM sys.objects
)
SELECT  POWER(10.0, SUM(LOG10(RN)))
FROM Nums
WHERE RN <= 10

И рекурсивен начин

declare @target int
set @target=10;

WITH N AS
     (SELECT 1 AS i,
           1 AS f

     UNION ALL

     SELECT i+1,
            f*(i+1)
     FROM   N
     WHERE  i < @target
     )
SELECT f FROM N
WHERE [email protected]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как може хигиенизирането, което избягва единични кавички, да бъде победено от SQL инжекция в SQL Server?

  2. Разбиране на рекурсивната проверка за прекратяване на CTE

  3. CRUD работа с ASP.NET Core MVC, Entity Framework Core и SQL Server

  4. Заявка за данни в дървовидна структура в SQL Server

  5. Вземете Excel лист във временна таблица с помощта на скрипт