在没有循环的情况下在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