当前位置: 首页 > 编程笔记 >

SQL Server中通配符的使用示例

谢典
2023-03-14
本文向大家介绍SQL Server中通配符的使用示例,包括了SQL Server中通配符的使用示例的使用技巧和注意事项,需要的朋友参考一下

在某些情况下熟悉SQL Server 通配符的使用可以帮助我们简单的解决很多问题。

--使用_运算符查找Person表中以an结尾的三字母名字
USEAdventureWorks2012;
GO
SELECT FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE'_an'
ORDER BY FirstName;
 
---使用[^]运算符在Contact表中查找所有名字以Al开头且第三个字母不是字母a的人
USEAdventureWorks2012;
GO
SELECT FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE'Al[^a]%'
ORDER BY FirstName;
 
---使用[]运算符查找其地址中有四位邮政编码的所有Adventure Works雇员的ID和姓名
USEAdventureWorks2012;
GO
SELECT e.BusinessEntityID, p.FirstName, p.LastName, a.PostalCode
FROMHumanResources.EmployeeAS e
INNER JOIN Person.PersonAS pON e.BusinessEntityID= p.BusinessEntityID
INNER JOIN Person.BusinessEntityAddressAS eaON e.BusinessEntityID=ea.BusinessEntityID
INNER JOIN Person.AddressAS aON a.AddressID= ea.AddressID
WHERE a.PostalCodeLIKE'[0-9][0-9][0-9][0-9]';

 
结果集:

 EmployeeID   FirstName   LastName   PostalCode
----------   ---------   ---------   ----------
290       Lynn      Tsoflias   3000
--将一张表中名字为中英文的区分出来(借鉴论坛中的代码)
create table tb(namenvarchar(20))
 
insert into tbvalues('kevin')
insert into tbvalues('kevin刘')
insert into tbvalues('刘')
 
select *,'Eng'from tbwherepatindex('%[a-z]%',name)>0and(patindex('%[吖-坐]%',name)=0)
union all
select *,'CN'from tbwherepatindex('%[吖-坐]%',name)>0andpatindex('%[a-z]%',name)=0
union all 
select *,'Eng&CN'from tbwhere(patindex('%[吖-坐]%',name)>0)andpatindex('%[a-z]%',name)>0

结果集:

name        
-------------------- ------
kevin        Eng
刘          CN
kevin刘       Eng&CN
 
(3 row(s) affected) 

       

 类似资料:
  • 问题内容: 使用Type通配符的Update()也存在该问题,但是我发现DocumentExists()的作用相同,因此在此将问题简化如下: 这有效… 但这失败了 如果我完全省略Type,它也会失败。有人知道如何进行这项工作吗?(即使不管文档的类型如何都可以,对我而言还是可以的。) 问题答案: 据我所知,不可能在类型名称中指定通配符,但是您可以做一些技巧。 您可以在索引中查询具有特定ID的文档,并

  • 问题内容: 我正在尝试编写SQL更新,以使用新字符串替换特定的xml节点: 以便 变成 这种类型的请求缺少语法吗? 问题答案: 更新:MySQL 8.0具有功能REGEX_REPLACE()。 以下是我2014年的回答,该回答仍然适用于8.0之前的任何版本的MySQL: REPLACE()不支持通配符,模式,正则表达式等。REPLACE()仅将一个常量字符串替换为另一个常量字符串。 您可以尝试一些

  • 问题内容: 上面的代码不允许您将元素添加到列表中,通配符只能用作方法中的签名,同样不能用于添加,而只能用于访问。在这种情况下,以上目的是什么? 问题答案: 假设您有一个接口和两个类: 然后,您将得到返回结果列表的类: 当您需要“协变量返回”,但是返回集合而不是自己的对象时,这是一个很好的解决方案。最大的好处是,当独立于ITest接口使用ATest和BTest时,不必强制转换对象。但是,使用ITes

  • 在字符串比较中使用通配符 内含的模式匹配为字符串比较提供了一个多用途工具。下表显示了你可以通过 Like 运算符 使用的通配符和它们匹配的数字或字符串的数目。 在样式中的字符 在表达式中的匹配 ? _(下划线) 任何单一字符 * or % 零个或多个字符 # 任何单一数字(0 — 9) [charlist] 任何在字符表中的单一字符 [!charlist] 任何不在字符表中的单一字符 可用括在括号

  • 问题内容: 我的mysql数据库中的表名是动态生成的。有什么方法可以从名称与模式匹配的表中选择数据?我想它将看起来像: 问题答案: 不,您不能使用MySQL做到这一点。无法动态指定查询中的表-您必须在应用程序中构建列表(或执行多个单表查询)。

  • 问题内容: 我正在编写一个简单的调试程序,该程序将简单的字符串作为输入,其中可以包含星号以指示通配符匹配-任何 我以为我会简单地采用该模式,转义其中的任何正则表达式特殊字符,然后将其替换为。然后使用正则表达式匹配器。 但是我找不到任何Java函数来转义正则表达式。我能找到的最佳匹配,然而这正好将与在开始和字符串的结尾。 Java中有什么可以让您简单地进行通配符匹配而不必从头开始实现算法的? 问题答