SQL里通配符?的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL里通配符?的使用相关的知识,希望对你有一定的参考价值。
VFP6.0里有没有这个通配符?
在哪些情况下可以使用这个通配符?
举个例子~
谢谢
在SQL查询语句中有时用到模糊查询。格式为:<属性名> like <字符串常量>
属性名必须为字符型。例如:查询某班所有姓张的同学
select * from student where 姓名 like '张%'
这儿必须用“like”,所以一楼是错的
%表示任意长度的字符
_表示一个字符 参考技术A 在vfp这个软件里有vfp自己的语言个sql语言,通配符 * 和 ?属于sql语言,分别表示多个和一个;而 % 和 - 则是vfp自己的语言,分别表示多个和一个字符。
如 select * from 表名 ....这里*表示所有的意思
like“a%” 这里表示取以a开头的字符 参考技术B 在SQL中,%表示任意字符(长度不限),?表示一个非unicode字符(比如英文和数字)
比如说,查询某班所有姓张的学生的记录可以用以下的语句
select * from student where 姓名='张%' 参考技术C 百分号“%”匹配人任意个字符或汉字,下划线“_”匹配任意一个字符或汉字 参考技术D B
-代表任意一个字符
%代表任意多个字符串(0个,1个或者多个)
如何在 SQL 中使用通配符匹配列表?
【中文标题】如何在 SQL 中使用通配符匹配列表?【英文标题】:How can I use a list of wildcard match in SQL? 【发布时间】:2021-08-25 06:36:29 【问题描述】:我有一个 SQL 代码:
CASE
WHEN job_title LIKE '%Temp%'
OR job_title LIKE '%Intern%'
OR job_title LIKE '%Substitute%' THEN true
ELSE false
END AS is_part_time,
我想知道是否有更简洁的方法可以做到这一点,是否可以使用类似于 IN 子句的通配符列表?像这样?
CASE
WHEN job_title LIKE ['%Temp%','%Intern%','%Substitute%'] THEN true
ELSE false
END AS is_part_time,
【问题讨论】:
【参考方案1】:您可以使用正则表达式来表达这一点:
(job_title rlike 'Temp|Intern|Substitute') as is_part_time
注意:您确实应该有一个包含有效职位名称的表格。该表应包含指定作业特征的列,例如is_part_time
。
【讨论】:
【参考方案2】:您可以考虑使用正则表达式并使用RLIKE
简化它,例如
CASE
WHEN job_title RLIKE '.*(Temp|Intern|Substitute).*' THEN true
ELSE false
END AS is_part_time,
或者干脆
job_title RLIKE '.*(Temp|Intern|Substitute).*' AS is_part_time
让我知道这是否适合你。
【讨论】:
是否需要CASE WHEN
声明? RLIKE
不是已经返回 TRUE
或 FALSE
了吗?
@ReinisVerbelis 我已经包含了简化以上是关于SQL里通配符?的使用的主要内容,如果未能解决你的问题,请参考以下文章