我们的常驻数据库专家告诉我们,数字表非常宝贵。我不太明白为什么。这是一个数字表:
USE Model
GO
CREATE TABLE Numbers
(
Number INT NOT NULL,
CONSTRAINT PK_Numbers
PRIMARY KEY CLUSTERED (Number)
WITH FILLFACTOR = 100
)
INSERT INTO Numbers
SELECT
(a.Number * 256) + b.Number AS Number
FROM
(
SELECT number
FROM master..spt_values
WHERE
type = 'P'
AND number <= 255
) a (Number),
(
SELECT number
FROM master..spt_values
WHERE
type = 'P'
AND number <= 255
) b (Number)
GO
Run Code Online (Sandbox Code Playgroud)
根据博客文章,给出的理由是
数字表真的是无价之宝。我一直使用它们来进行字符串操作、模拟窗口函数、用大量数据填充测试表、消除游标逻辑以及许多其他没有它们将非常困难的任务。
但我不明白这些用途到底是什么——你能提供一些引人注目的具体例子,说明“数字表”在 SQL Server 中为你节省了大量工作——以及为什么我们应该拥有它们?
sql-server ×1