它可能听起来很愚蠢,但我想知道如何(如果可能的话)通过sql命令从0到10计数。我的意思是我想要一个SQL查询,它产生一个由0到10的数字组成的列,如下所示:
0
1
2
3
4
5
6
7
8
9
10个
我目前正在使用MySQL 5.0
答案 0 :(得分:3)
如果您只想要完全值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表。通过这种方式,它的填充方式无关紧要,因为它只需要填充一次。
答案 1 :(得分:2)
select number as n
from master..spt_values
where type='p'
and number between 0 and 10
抱歉,我刚注意到你是MYSQL,这只是MSSQL。
答案 2 :(得分:1)
你可以使用一个变量(虽然我不是100%明确你的要求):
SELECT id, (@i := @i + 1) AS counter FROM <table>,
(SELECT @i := 0) AS vars WHERE @i <= 10;
您可以添加其他任何您喜欢的列 - 我刚刚使用id
作为示例。如果您选择的表至少有11行,则可以使用。首先执行带括号的SELECT
,并将变量@i
初始化为零。
答案 3 :(得分:0)
使用pl sql我们可以这样做
for i in 1..1000 loop
insert into a values(i,i*2);
结束循环;
解决您的疑问是否有帮助?
答案 4 :(得分:0)
仅供参考,this answer表明它可以在Oracle,PostGres和MS Sql中完成 - 但不是MySQL,唉。