SQL SERVER 7.0 中的'['问题(100分)

  • 主题发起人 主题发起人 hunter0401
  • 开始时间 开始时间
H

hunter0401

Unregistered / Unconfirmed
GUEST, unregistred user!
在SQL SERVER 7.0 数据库某一表,表名为TBL_TEST,字段有F1(VARCHAR(30) PK),
中的内容有
F1
01-01-01
01-01-[02]-1
01-01-[02]-2
01-01-[03]
02-01-05
02-01-[12]
现在使用SQL语句查询所有以'01-01-[02]'开头的记录
SELECT * FROM TBL_TEST WHERE F1 LIKE '01-01-[02]%';
但是查询的不是所需的记录,但是使用
SELECT * FROM TBL_TEST WHERE F1 LIKE '01-01-%';
能查询到正确的记录,是否是'[]'有何新的用法。
 
在like语句中[]是有特殊意义的。
你可以用:
select * from tbl_test where f1 like '01-01-[[]02]%';
就可以了。
 
应该是'0101-[[02]]%'吧?
[]在like语句中,是通配符
like 'a[bcd]'
包括ab ac ad 3个串
 
to twos:
呵呵,你的不对。你实际试试就知道了。
你说的对:
“[]在like语句中,是通配符
like 'a[bcd]'
包括ab ac ad 3个串”,
可是你没有看进一步的帮助,
like '[[]' meaning [
like ']' meaning ]
 
用:
SELECT * FROM tbl_test where (f1 like '%01'+char(45)+'01'+char(45)+'%' ) AND (f1 LIKE '%'+CHAR(91)+'2'+CHAR(93)+'%')
可以了
 
是字符串匹配的作用:
'01-01-[02]%'
相当于:
'01-01-0%' 和 '01-01-2%'
 
接受答案了.
 
后退
顶部