将多个sql语句组合成一个sql语句

oug3syen  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(485)

如何将这些语句组合到一个sql语句中?

select city from station where city like 'a%';

select city from station where city like 'e%';

select city from station where city like 'i%';

select city from station where city like 'o%';

select city from station where city like 'u%';
q7solyqu

q7solyqu1#

显而易见的方法是 union all :

select city from station where city like 'a%' union all
select city from station where city like 'e%' union all
. . .

或许同样显而易见的是:

where city like 'a%' or city like 'e%' or . . .

您也可以使用不同的方法,例如:

where left(city, 1) in ('a', 'e', 'i', 'o', 'u')

(注意:并非所有数据库都支持。) left() .)
更典型的方法是某种形式的正则表达式,但其语法取决于数据库。

7eumitmz

7eumitmz2#

where SUBSTR(city,1,1) in ('a', 'e', 'i', 'o', 'u') 或使用 left(city, 1) 如果你的数据库支持的话。
你可以随时使用 union / union all 在陈述之间,或者 like 'a%' or like 'e%' .... 但我更喜欢用 substr 或者 left 在这种情况下

hec6srdp

hec6srdp3#

最好的方法,也将利用现有的索引将使用或:

select city from station 
where 
  city like 'a%' OR 
  city like 'e%' OR
  city like 'i%' OR
  city like 'o%' OR
  city like 'u%';

注意:在mssqlserver和postgresql中,这将生成最佳的执行计划。

相关问题