对于某些类型的SQL查询,辅助数字表可能非常有用.它可以创建为具有特定任务所需的行数的表,也可以创建为返回每个查询所需行数的用户定义函数.
创建这样一个函数的最佳方法是什么?
我到处搜索,我无法在任何地方找到这个实现.
让我说我有这个词: QWERTY
我想获得这张桌子:
Q
W
E
R
T
Y
Run Code Online (Sandbox Code Playgroud)
或者QWERTY AnotherWord我想获得
Q
W
E
R
T
Y
[space character here]
A
n
o
t
h
e
r
W
o
r
d
Run Code Online (Sandbox Code Playgroud) 如果我有一个数字X并想说IsPrime(X) = true/false使用sql-server最好的方法是什么?
我只是导入一个素数表还是有一个算法对于较小的素数是相当有效的?
注意:我对大于约的数字不感兴趣.千万.
结束使用以下内容:
CREATE FUNCTION [dbo].[isPrime]
(
@number INT
)
RETURNS VARCHAR(10)
BEGIN
DECLARE @retVal VARCHAR(10) = 'TRUE';
DECLARE @x INT = 1;
DECLARE @y INT = 0;
WHILE (@x <= @number )
BEGIN
IF (( @number % @x) = 0 )
BEGIN
SET @y = @y + 1;
END
IF (@y > 2 )
BEGIN
SET @retVal = 'FALSE'
BREAK
END
SET @x = @x + 1
END
RETURN @retVal
END
Run Code Online (Sandbox Code Playgroud) 我想从sql server显示12个月的名字.我虽然要在temp表中完成插入月份名称,然后在该表上激活select语句.所以我不得不写12个插入表来插入12个月的名字.所以我搜索谷歌找到更好的解决方案,我得到了它.
WITH R(N) AS
(
SELECT 0
UNION ALL
SELECT N+1
FROM R
WHERE N < 12
)
SELECT LEFT(DATENAME(MONTH,DATEADD(MONTH,-N,GETDATE())),3) AS [month]
FROM R
Run Code Online (Sandbox Code Playgroud)
上面的脚本工作得很好但我的问题是我只是不明白它是如何工作的.我从不和CTE合作过.
所以告诉我是什么意思 WITH R(N) AS
并看到这个SQL
SELECT LEFT(DATENAME(MONTH,DATEADD(MONTH,-N,GETDATE())),3) AS [month] FROM R
when above sql execute how it is getting value for -N ??
because here i have not set anything for -N ??
Run Code Online (Sandbox Code Playgroud)
所以请任何人帮助我理解整个事情是如何运作的.thaks
只是看看并告诉我
;WITH months(MonthNumber) AS
(
SELECT 0
UNION ALL
SELECT MonthNumber+1
FROM months
WHERE MonthNumber < 12
) …Run Code Online (Sandbox Code Playgroud) 我不知道我必须在哪里问这个问题,我只想知道Inner Join和之间有什么区别Inner Remote Join?我刚刚尝试实现两个连接,如下所示:
With Remote Inner Join
SELECT P.CompanyName,u.UserName from tb_Offices AS P
INNER REMOTE JOIN
tb_Users AS U
on P.UserId=U.UserId
Run Code Online (Sandbox Code Playgroud)
With Simple Inner Join
SELECT P.CompanyName,u.UserName from tb_Offices AS P
INNER JOIN
tb_Users AS U
on P.UserId=U.UserId
Run Code Online (Sandbox Code Playgroud)
两个查询都返回相同类型的记录。
然后我尝试使用执行计划运行:
随着Remote Inner Join我:
Inner Join我得到了简单的:
我对SQL Execution Plan.
我只是想知道Inner Join和之间哪个更好Inner Remote Join。
谢谢
长话短说; 我正在测试一个通过网络连接从表中清除条目的系统,预计该功能最多可处理超过 20 亿个条目。
我需要对此进行压力测试才能确定。
这是我的测试脚本(最多可以在十分钟内生成 980 万个。)
DECLARE @I INT=0
WHILE @I <2000000001
BEGIN
INSERT INTO "Table here"
VALUES(@I)
SET @I=@I+1
END
Run Code Online (Sandbox Code Playgroud)
任何人都可以提出任何建议,或者让我了解在这种情况下我的测试环境的上限可能是什么?