SQL里通配符?的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL里通配符?的使用相关的知识,希望对你有一定的参考价值。

VFP6.0里有没有这个通配符?

在哪些情况下可以使用这个通配符?

举个例子~

谢谢

在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 不是已经返回 TRUEFALSE 了吗? @ReinisVerbelis 我已经包含了简化

以上是关于SQL里通配符?的使用的主要内容,如果未能解决你的问题,请参考以下文章

请问SQL中的like子句中可以使用的通配符有

SQL中like里怎么使用输入参数

mssql中一个简单的模糊查询语句怎么写请教大侠们

SQL的通配符

[11]SQL 通配符

SQL Server:SQL 通配符