mysql SQL,从0到10计数

ujv3wf0j  于 2023-11-16  发布在  Mysql
关注(0)|答案(5)|浏览(130)

这可能听起来很愚蠢,但我想知道如何(如果可能的话)通过SQL命令从0到10计数。我的意思是我想要一个SQL查询,它产生一个由0到10的数字组成的列,像这样:
0
1
2
3
4
5
6
7
8
9
10
我目前使用MySQL 5.0

t98cgbkg

t98cgbkg1#

如果你只是想要精确的值0到10,那么下面的方法在所有的DBMS中都适用:

Select Num
From    (
        Select 0 As Num
        Union All Select 1
        Union All Select 2
        Union All Select 3
        Union All Select 4
        Union All Select 5
        Union All Select 6
        Union All Select 7
        Union All Select 8          
        Union All Select 9
        Union All Select 10
        ) As Numbers

字符串
也就是说,解决需要整数序列表的问题的最简单方法是创建一个包含此列表的永久Numbers或Tally表。通过这种方式,如何填充它并不重要,因为它只需要填充一次。

vx6bjr1n

vx6bjr1n2#

select number  as n
from master..spt_values 
where type='p' 
and number between 0 and 10

字符串
对不起,我只是注意到你在MYSQL,这是MSSQL只有。

0qx6xfy6

0qx6xfy63#

你可以使用一个变量(尽管我不是100%清楚你的要求):

SELECT id, (@i := @i + 1) AS counter FROM <table>,
(SELECT @i := 0) AS vars WHERE @i <= 10;

字符串
你可以包含任何你喜欢的其他列-我刚刚使用id作为例子。如果你选择的表至少有11行,这将工作。括号中的SELECT首先执行,并初始化变量@i为零。

nnsrf1az

nnsrf1az4#

使用pl sql我们可以做如下事情
for i in 1..1000循环

insert into a values(i,i*2);

字符串
结束循环;
这对解决你的疑惑有帮助吗?

im9ewurl

im9ewurl5#

您可以使用Recursive CTE生成从1到n的数字。

with recursive cte as(
    select 1 as num
    union all
    select num + 1 from cte where num < 10
)

select num from cte;

字符串

输出:

num
1
2
3
4
5
6
7
8
9
10

相关问题