SqlServer语句 ------查当天数据,模糊查询,查(不)范围之内,使用in查询按条件顺序返回

查询当天或者前一天的数据

select  *  form   table where date  between  DATEADD(DAY,-1,GETDATE())  AND  GETDATE();

查范围之内
用between…and…

select * form goods  where  price  between 1000  and 3000  

不在范围之内
用not…between…and

select * form goods  where  price between 1000  and 3000  

 

模糊查询

查出含有mr字符的数据
where  列名  Like '%mr%'

查询出以mr字符开头的数据
where  列名  Like 'mr%'

查询出以mr字符结尾的数据
where  列名  Like '%mr'

查询出某列前两个字符为mr,后一个字符为随意字符的数据
where 列名  Like 'mr_'

查询出某列前一个为任意字符,后两个字符为mr的数据
where 列名  Like '_mr'

查询出某列中不是以a~e之间的字符开头的数据
where  列名  Like '[^a-e]%'

 

-------------------------------------------------------------2019-10-22-------------------------------------------------------------------

SQL使用in查询按条件顺序返回

--根据In条件顺序排序
Sqlserver:

SELECT id,OrderNo FROM T_Express  WHERE OrderNo in 
('4997204024991853704','4885613398959024576','5581738235205824010',
'5562763472934261354','5505736706596514515','4897808779901361047','4805840510538887848')
ORDER BY
 charindex (OrderNo,'4997204024991853704,4885613398959024576,5581738235205824010,
5562763472934261354,5505736706596514515,4897808779901361047,4805840510538887848')

 

Oracle  

SELECT id,OrderNo FROM T_Express  WHERE OrderNo in 
('4997204024991853704','4885613398959024576','5581738235205824010',
'5562763472934261354','5505736706596514515','4897808779901361047','4805840510538887848')
ORDER BY
 "decode" (OrderNo,'4997204024991853704,4885613398959024576,5581738235205824010,
5562763472934261354,5505736706596514515,4897808779901361047,4805840510538887848')

 

MYSQL

SELECT id,OrderNo FROM T_Express  WHERE OrderNo in 
('4997204024991853704','4885613398959024576','5581738235205824010',
'5562763472934261354','5505736706596514515','4897808779901361047','4805840510538887848')
ORDER BY
 FIND_IN_SET  (OrderNo,'4997204024991853704,4885613398959024576,5581738235205824010,
5562763472934261354,5505736706596514515,4897808779901361047,4805840510538887848')

结果:

SqlServer语句 ------查当天数据,模糊查询,查(不)范围之内,使用in查询按条件顺序返回_第1张图片

你可能感兴趣的:(日常总结)