SQLzoo刷题-%、_、concat、replace

1、通配符%

%可以代表0个、1个、多个字符

  • 以a开头-----“a%”
  • 以a结尾-----“%a”
  • 含有a----"%a%"
/*筛选出name中含有aeiou所有元素的,但不含空格的*/
SELECT name 
FROM world 
WHERE name like '%a%' 
  and name like'%e%' 
  and name like '%i%'
  and name like '%o%' 
  and name like '%u%' 
  and name not like '% %'`

2、通配符_

_仅代表一个字符

  • 找出名字是4个字母的:where name like “____”

3、concat函数

  • concat是用来连接两个字符串的函数
/*①筛选所有国家名字,其首都是国家名字加上”City”*/
select name 
from world
where capital = concat(name,' City')
/*②筛选出首都、国家,其首都包含国家名*/
select capital,name
from world
where capital like concat('%',name,'%')

注意:concat将两个字符连接起来是没有空格的,如concat(“hello”,“cat”) 得到的结果是hellocat,若想得到hello cat,则需自己添加空格,concat(“hello”," cat")

4、replace函数

  • replace( ‘st1’ , ‘str2’ , ‘str3’ )
    st1: 被搜索的字符串。
    str2: 在st1中要被 str3 替换的字符串。
    str3: 该字符串用于替换 str2。如果str3是空字符串,那么直接在st1中删除str2。
    如,replace(‘hellocat’,‘hello’,‘goodbye’)表示用goodbye替换hellocat中的hello
/*筛选国家名字,及其扩展词,首都是国家名字的延伸。*/
select name, replace (capital, name, '') as extend /*由于’‘为空字符串,因此在capital中删除name*/
from world
where capital like concat ( name, '%_' ) ;/*扩展词至少包含一个字符,故使用 '%_' */
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值