这可能听起来很愚蠢,但我想知道如何(如果可能的话)通过SQL命令从0到10计数。我的意思是我想要一个SQL查询,它产生一个由0到10的数字组成的列,像这样:012345678910我目前使用MySQL 5.0
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表。通过这种方式,如何填充它并不重要,因为它只需要填充一次。
vx6bjr1n2#
select number as n from master..spt_values where type='p' and number between 0 and 10
字符串对不起,我只是注意到你在MYSQL,这是MSSQL只有。
0qx6xfy63#
你可以使用一个变量(尽管我不是100%清楚你的要求):
SELECT id, (@i := @i + 1) AS counter FROM <table>, (SELECT @i := 0) AS vars WHERE @i <= 10;
字符串你可以包含任何你喜欢的其他列-我刚刚使用id作为例子。如果你选择的表至少有11行,这将工作。括号中的SELECT首先执行,并初始化变量@i为零。
id
SELECT
@i
nnsrf1az4#
使用pl sql我们可以做如下事情for i in 1..1000循环
insert into a values(i,i*2);
字符串结束循环;这对解决你的疑惑有帮助吗?
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
型
5条答案
按热度按时间t98cgbkg1#
如果你只是想要精确的值0到10,那么下面的方法在所有的DBMS中都适用:
字符串
也就是说,解决需要整数序列表的问题的最简单方法是创建一个包含此列表的永久Numbers或Tally表。通过这种方式,如何填充它并不重要,因为它只需要填充一次。
vx6bjr1n2#
字符串
对不起,我只是注意到你在MYSQL,这是MSSQL只有。
0qx6xfy63#
你可以使用一个变量(尽管我不是100%清楚你的要求):
字符串
你可以包含任何你喜欢的其他列-我刚刚使用
id
作为例子。如果你选择的表至少有11行,这将工作。括号中的SELECT
首先执行,并初始化变量@i
为零。nnsrf1az4#
使用pl sql我们可以做如下事情
for i in 1..1000循环
字符串
结束循环;
这对解决你的疑惑有帮助吗?
im9ewurl5#
您可以使用Recursive CTE生成从1到n的数字。
字符串
输出:
型