SQL语句通配符查询, 怎么查找 中括号 []
SQL语句通配符查询,怎么查找中括号[]例如查找[大写字母]patindex(string,'%[A-Z]%').中括号咋么查?转义符patindex('%\[[A-Z]...
SQL语句通配符查询, 怎么查找 中括号 []
例如查找 [大写字母]
patindex(string, '%[A-Z]%').
中括号咋么查?
转义符patindex( '%\[[A-Z]\]%', string). 不成功
刚才写错而已。 依然不支持。 系统自动匹配如图:
sungun07真复杂。 其实我就是想通配查找: [大写字母] 展开
例如查找 [大写字母]
patindex(string, '%[A-Z]%').
中括号咋么查?
转义符patindex( '%\[[A-Z]\]%', string). 不成功
刚才写错而已。 依然不支持。 系统自动匹配如图:
sungun07真复杂。 其实我就是想通配查找: [大写字母] 展开
6个回答
推荐于2017-09-02 · 知道合伙人软件行家
关注
展开全部
搂主说得不是太明白,你是要取第一条记录所对应的那个时间吗?
如果是的话,用如下语句即可。
select min(time)
from table1
group by convert(varchar(13),time,20)
假设Table1表中数据如下
2006-05-01 11:01:00.000
2006-05-01 11:02:00.000
2006-05-01 12:02:00.000
2006-05-02 12:02:00.000
2006-05-02 12:01:00.000
查询结果为:
2006-05-01 11:01:00.000
2006-05-01 12:02:00.000
2006-05-02 12:01:00.000
对应的都是每小时中最早的那一条时间。
convert(varchar(13),time,20)
的意思是将time字段转换成字符串形式,convert的第三个参数,取值20是将时间转换成yyyy-mm-dd hh:mm:ss的形式。由于限定了是转换成长度为13的字符串,所以转换后就会取时间字符串的前13位yyyy-mm-dd hh
如果是的话,用如下语句即可。
select min(time)
from table1
group by convert(varchar(13),time,20)
假设Table1表中数据如下
2006-05-01 11:01:00.000
2006-05-01 11:02:00.000
2006-05-01 12:02:00.000
2006-05-02 12:02:00.000
2006-05-02 12:01:00.000
查询结果为:
2006-05-01 11:01:00.000
2006-05-01 12:02:00.000
2006-05-02 12:01:00.000
对应的都是每小时中最早的那一条时间。
convert(varchar(13),time,20)
的意思是将time字段转换成字符串形式,convert的第三个参数,取值20是将时间转换成yyyy-mm-dd hh:mm:ss的形式。由于限定了是转换成长度为13的字符串,所以转换后就会取时间字符串的前13位yyyy-mm-dd hh
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用中括号把特殊符号括起来就行了。
比如:select * from TB_QF where QF_str like '%[[]%[]]%'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用转义符号\啊 \[
转义符patindex( '%\[[A-Z]\[%', string). 不成功
patindex( '%\[[A-Z]\]%', string). 你把后边那个括号方向搞反了
转义符patindex( '%\[[A-Z]\[%', string). 不成功
patindex( '%\[[A-Z]\]%', string). 你把后边那个括号方向搞反了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
--嘿嘿,没弄明白patindex的用法,不好意思
set serveroutput on ;
declare
v_posleft number;
v_posright number;
v_tring varchar2(1024);
v_substr varchar2(502);
begin
--原来的字符串patindex(string, '%[A-Z]%')
v_tring := 'patindex(string, '||chr(39)||'%[A-Z]%'||chr(39)||')';--使用转义字符变化了原来的字符串
v_posleft := instr( v_tring,chr(91));--判断左[
v_posright := instr( v_tring,chr(93),instr( v_tring,chr(91)));--判断右]
select
case when v_posleft>0 then
(case when v_posright>0
then SUBSTR(v_tring, v_posleft+1, v_posright - v_posleft-1)
end)
else 'bbb' end
into v_substr
from dual ;
dbms_output.put_line('子串为:'||v_substr);
end ;
--使用了转义字符char(39) ' char(91) [ char(93) ]
转义字符表参考http://www.itpub.net/thread-201742-1-1.html
set serveroutput on ;
declare
v_posleft number;
v_posright number;
v_tring varchar2(1024);
v_substr varchar2(502);
begin
--原来的字符串patindex(string, '%[A-Z]%')
v_tring := 'patindex(string, '||chr(39)||'%[A-Z]%'||chr(39)||')';--使用转义字符变化了原来的字符串
v_posleft := instr( v_tring,chr(91));--判断左[
v_posright := instr( v_tring,chr(93),instr( v_tring,chr(91)));--判断右]
select
case when v_posleft>0 then
(case when v_posright>0
then SUBSTR(v_tring, v_posleft+1, v_posright - v_posleft-1)
end)
else 'bbb' end
into v_substr
from dual ;
dbms_output.put_line('子串为:'||v_substr);
end ;
--使用了转义字符char(39) ' char(91) [ char(93) ]
转义字符表参考http://www.itpub.net/thread-201742-1-1.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询