相关疑难解决方法(0)

在 SQL Server 中执行 FIZZBUZZ 测试的最有效方法是什么?

是否有更有效的方法来获得从 1 到 49 的数字列表,其中一列包含单词,FIZZ当数字可以被 3 整除BUZZ时,当数字可以被 5 整除FIZZBUZZ时,当数字可以被均分时由两个3和5?

我的尝试是(注意,这会清空您的过程缓存,所以不要在生产箱上运行):

DBCC FREEPROCCACHE
GO
/*VARIANT1*/
;WITH t AS (
    SELECT RowNum = ROW_NUMBER() OVER (ORDER BY o.object_id)
    FROM sys.objects o
)
SELECT t.RowNum
    , CASE WHEN ((t.RowNum % 3) + (t.RowNum % 5)) = 0  THEN 'FIZZBUZZ' 
    ELSE 
        CASE WHEN t.RowNum % 3 = 0 THEN 'FIZZ' 
        ELSE 
            CASE WHEN t.RowNum % 5 = 0 THEN 'BUZZ' 
            ELSE '' 
            END 
        END 
    END
FROM …
Run Code Online (Sandbox Code Playgroud)

sql-server

27
推荐指数
7
解决办法
2726
查看次数

标签 统计

sql-server ×1