新足迹

 找回密码
 注册

精华好帖回顾

· [2800公里塔斯马尼亚自驾二十天探索之旅] 上部完。234楼新增虎公视频 (2009-5-8) Tiger_Karen · 大头家常菜 -- 香酥小虾,八珍豆腐,红烧肉 (2007-11-3) datou2z
· 尴尬癌的续集——北京遇上西雅图之不二情书 (2016-6-23) 双鱼妈妈 · 2023环游法国16天 (Day 16 - 开电频车游凡尔赛宫,完美结束法国之旅) (2023-5-1) vikki
Advertisement
Advertisement
查看: 1914|回复: 18

[IT] 请教这个sql怎么写(感谢已经解决) [复制链接]

发表于 2021-1-28 09:31 |显示全部楼层
此文章由 zhudi 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zhudi 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 zhudi 于 2021-1-28 09:37 编辑

sql 小白学生

要求是把带有所有元音字母的国家名字列出来,元音字母 a e i o u

答案是Mozambique

请问 where 后面怎么写

非常感谢

因为是练习题,所以此答案有效:

where name LIKE '%a%'
AND name LIKE '%e%'
AND name LIKE '%i%'
AND name LIKE '%o%'
AND name LIKE '%u%'


感谢诸位
飞天意面怪物教信徒。
Advertisement
Advertisement

发表于 2021-1-28 10:01 |显示全部楼层
此文章由 图图哥 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 图图哥 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这可能就是一道简单的面试题,stackoverflow上面一抓一大把,要自己学会利用资源

评分

参与人数 1积分 +1 收起 理由
zhudi + 1 感谢分享此网站

查看全部评分

发表于 2021-1-28 10:02 |显示全部楼层
此文章由 blackhole 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 blackhole 所有!转贴必须注明作者、出处和本声明,并保持内容完整
用like或者ilike,试试?

发表于 2021-1-28 10:04 |显示全部楼层
此文章由 kuxxc 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kuxxc 所有!转贴必须注明作者、出处和本声明,并保持内容完整
最先想到的是用五个charindex AND 起来

发表于 2021-1-28 10:06 |显示全部楼层
此文章由 tyler_kwok 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 tyler_kwok 所有!转贴必须注明作者、出处和本声明,并保持内容完整
https://stackoverflow.com/questi ... ame-with-all-vowels

可以从这里开始,另外同意二楼。

评分

参与人数 1积分 +1 收起 理由
zhudi + 1 感谢分享

查看全部评分

发表于 2021-1-28 10:06 来自手机 |显示全部楼层
此文章由 greatfire 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 greatfire 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Like '%a%'
......
Advertisement
Advertisement

发表于 2021-1-28 10:06 |显示全部楼层
此文章由 rayki 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rayki 所有!转贴必须注明作者、出处和本声明,并保持内容完整
参考这个吧。 这个是取首位字母包括原音。你可以选择用AND 或者其他方式。 就像前面说的stackoverflow上很多。
https://stackoverflow.com/questi ... r-as-vowela-e-i-o-u

select city
from   station
where  substr(country,  1, 1) in ('a', 'e', 'i', 'o', 'u')
  and  substr(country, -1, 1) in ('a', 'e', 'i', 'o', 'u')

评分

参与人数 1积分 +1 收起 理由
zhudi + 1 感谢分享

查看全部评分

我来问道无余话,云在青天水在瓶

发表于 2021-1-28 10:08 |显示全部楼层
此文章由 大大海 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 大大海 所有!转贴必须注明作者、出处和本声明,并保持内容完整
SELECT name FROM world
WHERE name like '%a%'
AND name like '%e%'
AND name like '%i%'
AND name like '%o%'
AND name like '%u%' ;

评分

参与人数 1积分 +1 收起 理由
zhudi + 1 感谢分享

查看全部评分

发表于 2021-1-28 10:09 |显示全部楼层
此文章由 chainray 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 chainray 所有!转贴必须注明作者、出处和本声明,并保持内容完整
最土的就是用LIKE

如果你用SSDT之类的工具,还可以考虑上regex

发表于 2021-1-28 10:11 |显示全部楼层
此文章由 tyler_kwok 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 tyler_kwok 所有!转贴必须注明作者、出处和本声明,并保持内容完整
like其实效率很低的,如果是我我会尽量先考虑别的实现方法。

发表于 2021-1-28 10:11 |显示全部楼层
此文章由 jfding 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 jfding 所有!转贴必须注明作者、出处和本声明,并保持内容完整
name like "%a% and name like %e% and ....
記得先把 name 轉成Low case

评分

参与人数 1积分 +1 收起 理由
zhudi + 1 感谢分享

查看全部评分

Advertisement
Advertisement

发表于 2021-1-28 10:36 |显示全部楼层
此文章由 zhudi 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zhudi 所有!转贴必须注明作者、出处和本声明,并保持内容完整
rayki 发表于 2021-1-28 09:06
参考这个吧。 这个是取首位字母包括原音。你可以选择用AND 或者其他方式。 就像前面说的stackoverflow上很 ...

这个的结果是 首字母和最后字母都是元音吧
飞天意面怪物教信徒。

发表于 2021-1-28 10:52 |显示全部楼层
此文章由 aqsz200 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 aqsz200 所有!转贴必须注明作者、出处和本声明,并保持内容完整
tyler_kwok 发表于 2021-1-28 09:11
like其实效率很低的,如果是我我会尽量先考虑别的实现方法。

只在sql里你会用什么其他方法?

发表于 2021-1-28 11:03 |显示全部楼层
此文章由 rayki 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rayki 所有!转贴必须注明作者、出处和本声明,并保持内容完整
zhudi 发表于 2021-1-28 10:36
这个的结果是 首字母和最后字母都是元音吧

是啊,题目有说。 但是举一反三。
我来问道无余话,云在青天水在瓶

发表于 2021-1-28 11:09 |显示全部楼层
此文章由 tyler_kwok 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 tyler_kwok 所有!转贴必须注明作者、出处和本声明,并保持内容完整
aqsz200 发表于 2021-1-28 09:52
只在sql里你会用什么其他方法?

不知道,没有脑力去考虑这个问题。也许用tsql(勉强也算sql)做一些算法,或者regex方面去想?
sb list:
4|61957|411122|402931|126920|253662|132261|385996

发表于 2021-1-28 11:19 |显示全部楼层
此文章由 aqsz200 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 aqsz200 所有!转贴必须注明作者、出处和本声明,并保持内容完整
tyler_kwok 发表于 2021-1-28 10:09
不知道,没有脑力去考虑这个问题。也许用tsql(勉强也算sql)做一些算法,或者regex方面去想? ...

只靠text搜索估计没有什么能大量提高的了,regex也是逐行扫描,不知道fulltext index/search会不会好一点。

但如果可以进行表优化可以做到大幅度加快搜索,比如增加aeiou五个bit column,插入式就判断有没有包含各个字母,写入0/1,然后做成index,这样基本可以做到指哪打哪
Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2021-1-28 11:27 |显示全部楼层
此文章由 对你爱不完 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 对你爱不完 所有!转贴必须注明作者、出处和本声明,并保持内容完整
图图哥 发表于 2021-1-28 10:01
这可能就是一道简单的面试题,stackoverflow上面一抓一大把,要自己学会利用资源 ...

他不是正在利用吗?

发表于 2021-1-28 15:55 |显示全部楼层
此文章由 BeUBeTrue 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 BeUBeTrue 所有!转贴必须注明作者、出处和本声明,并保持内容完整
或者

where instr(country,'a')>0 and instr(country,'e')>0 and instr(country,'i')>0 and instr(country,'o')>0 and instr(country,'u')>0

或者

where length(regexp_replace(country,'[^a],''))>0 and length(regexp_replace(country,'[^e],''))>0 and length(regexp_replace(country,'[^i],''))>0 and length(regexp_replace(country,'[^o],''))>0 and length(regexp_replace(country,'[^u],''))>0


评分

参与人数 1积分 +1 收起 理由
zhudi + 1 感谢分享 虽然看不懂

查看全部评分

发表于 2021-1-28 17:57 |显示全部楼层
此文章由 sinkingmoon 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 sinkingmoon 所有!转贴必须注明作者、出处和本声明,并保持内容完整
like '%[aeiou]%'

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部