数据库T-SQL语句中[]的内容是什么意思?

我的sql语句:select * from Info where Dname like '%路由器[a]%' 是什么也查不出来,但是: select * from Info where Dname='路由器[a]' 就能查出来,为什么? 列的内容就是:路由器[a] 。

[ ](通配符 - 要匹配的字符)(Transact-SQL)

匹配指定范围内或者属于方括号所指定的集合中的任意单个字符。可以在涉及模式匹配的字符串比较(例如,LIKE 和 PATINDEX)中使用这些通配符。有关详细信息,请参阅搜索条件中的模式匹配。

示例
以下示例使用 [] 运算符查找其地址中有四位邮政编码的所有 Adventure Works 雇员的 ID 和姓名。

USE AdventureWorks;
GO
SELECT e.EmployeeID, c.FirstName, c.LastName, a.PostalCode
FROM HumanResources.Employee AS e
INNER JOIN Person.Contact AS c ON e.ContactID = c.ContactID
INNER JOIN HumanResources.EmployeeAddress AS ea ON e.EmployeeID = ea.EmployeeID
INNER JOIN Person.Address AS a ON a.AddressID = ea.AddressID
WHERE a.PostalCode LIKE '[0-9][0-9][0-9][0-9]';
GO

对于你的 SQL

Dname like '%路由器[a]%'

相当于要匹配 Dname like '%路由器a%'

因此, 是无法匹配 路由器[a] 了。

你可以使用转义符号来处理。
例如:

1> create table #temp ( val varchar(20) );
2> go

1> insert into #temp values ('路由器[a]')
2> go
(1 行受影响)

1> SELECT
2> *
3> FROM
4> #Temp
5> WHERE
6> val LIKE '路由器/[a/]' ESCAPE '/'
7> GO
val
--------------------
路由器[a]

(1 行受影响)追问

意思是,使用“like ” 的时候“ [ ] ” 就相当于是通配符,如果是 “ = ” 的时候“ [ ] ” 就是普通的方括号?

追答

恩,
LIKE '[0-9][0-9][0-9][0-9]' 就相当于 匹配 0000 -- 9999 这个区间的内容
但是 = '[0-9][0-9][0-9][0-9]' 就是完全匹配的用途。

那个
val LIKE '路由器/[a/]' ESCAPE '/'

其中 ESCAPE '/' 意思是 转义符号。
这个符号后面跟的字符, 就不做通配符用了。

例如
val LIKE '路由器/%' ESCAPE '/'
就是用来 完全匹配 '路由器% ' 的了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-02
select * from Info where Dname like '%路由器[[]a]%'

数据库T-SQL语句中[]的内容是什么意思?
[ ](通配符 - 要匹配的字符)(Transact-SQL)匹配指定范围内或者属于方括号所指定的集合中的任意单个字符。可以在涉及模式匹配的字符串比较(例如,LIKE 和 PATINDEX)中使用这些通配符。有关详细信息,请参阅搜索条件中的模式匹配。示例 以下示例使用 [] 运算符查找其地址中有四位邮政编码的所有 Adven...

在T-SQL语句的语法描述中可选项是什么?
在T-SQL语句的语法描述中用方括号[]括起来的都是可选项。

sql里<> 符号是什么意思?
是T-SQL特有的=* 表示右连接,相当於right join *= 表示左连接,相当於left join

sql语句中的~符号是什么意思
function$这里,序列 $q$[\\t\\r\\n\\v\\\\]$q$ 表示一个美元符包围的字串文本 [\\t\\r\\n\\v\\\\], 在函数体被 PostgreSQL 执行的时候,它将被识别出来。 但是因为这个序列不匹配外层的美元符分隔符$function$, 所以只要考虑了外层字串,它就只是常量里面的一些额外的字符而已。如果有标签的话,一个...

分析如下T-SQL语句,说出查询结果是什么。
--sql 中 [] 通配符 -- [ ] 与特定范围(例如,[a-f])或特定集(例如,[abcdef])中的任意单字符匹配。--你上面的句子相当于select * from product where ProductName like '草鱼' or ProductName like '鲶鱼'

在数据库中添加一行的SQL语句怎么写?
1、插入数据:insertinto表名values(值列表)[,(值列表)];可以一次性插入多条数据。2、给部分字段插入数据:insertinto表名(字段列表)values(值列表)[,(值列表)];使用T-SQL脚本插入数据 语法 insertintotable_namevalues(值1,值2,...);示例 insertinto[tests].[dbo]....

sql中大括号里面的内容是啥意思
String SQL = "select t1.* into {0} from {1} t1 left join T_PUR_POORDER as d on t1.fbillno=d.fbillno where {2}";String FinalSQL = String.Format(SQL,"表名1","表名2","where条件");程序这样处理完,你觉得FinalSQL会变成什么?FinalSQL才会是最后真正执行的SQL语句 ...

T-SQL语句的分为哪四类?
根据其完成的具体功能,可以将T-SQL语句分为:数据定义语言、数据操纵语言、数据控制语言、事务管理语言。1、数据定义语言用来定义和管理数据库以及数据库中的各种对象,这些对象的创建、修改和删除等都可以通过使用CREATE、ALTER、DROP等语句来完成。2、数据操纵语言用来查询、添加、修改和删除数据库中数据,...

在T-SQL语句中常会看见@@Ci的形式,那么@@代表什么?
在T-SQL中,@@是一个符号组合,但不是@@Ci这样的形式。通常,@@符号组合用于引用系统变量或系统函数。以下是一些常见的以@@开头的系统变量和函数:Identity:返回最后插入的标识列的值。RowCount:返回上一条SQL语句影响的行数。Version:返回当前数据库的版本信息。对于@@Ci这样的形式,我无法找到具体...

数据库T-SQL语句
能说得明白点吗?产地计量单位是什么意思?

相似回答