在没有循环的情况下在SQL中迭代“IN”子句

有没有办法在SQL语句中遍历“IN”子句而无需实现某种循环?在没有循环的情况下在SQL中迭代“IN”子句

我的例子是:

SELECT * 

FROM store_table

WHERE store_a IN (1,2,3,4,5,6,7,8,9,10);

而不必列出所有的门店中,有没有办法列出写某种代码,它看起来就像这样:

SELECT * 

FROM store_table

WHERE store_a IN (1,2,...10);

我明白上述不是真正的SQL语法,但为了实例,我想以这种方式使用它。我知道,如果你想查看所有商店有许多不同的方式,语法上这样做,但我只是担心前100或最后20或等...

我问这个问题的原因是因为如果你有1000家商店,而你想看到前500家商店,那么你会有一些相当长和烦人的代码。

任何帮助表示赞赏!

回答:

如果你想看到的第500家门店,然后使用:

select st.* 

from (select st.*

from store_table st

order by store_a

) st

where rownum <= 500;

这是假定每个“存储”一排,这是有道理的,与该名称的表。

在Oracle 12C +中,您可以使用fetch first 500 rows only而不必使用子查询。

回答:

而不是in运算符之间使用,例如

SELECT * 

FROM store_table

WHERE store_a BETWEEN 1 AND 10

以上是 在没有循环的情况下在SQL中迭代“IN”子句 的全部内容, 来源链接: utcz.com/qa/266252.html

回到顶部