A. 用sql查询时,怎么判断字段中是否含有数字,如果有就把数字去掉
/*
用正则表达式或者自定义函数
下面是用正则表达式的代码
如果报错的话,需要开启OleAutomationProceres
execsp_configure'showadvancedoptions',1;
RECONFIGURE;
execsp_configure'OleAutomationProceres',1;
RECONFIGURE;
execsp_configure'showadvancedoptions',0;
RECONFIGURE;
*/
--能按正则表达式替换的函数
CreateFunction[dbo].[MyReplace](@RegVarchar(1000),@SourceVarchar(4000),@StrVarchar(1000))
returnssql_variant
As
Begin
Declare@ErrInt
Declare@objInt
Declare@Rstsql_variant
EXEC@Err=Sp_OACreate'VBScript.RegExp',@objOUTPUT
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'Pattern',@Reg
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'Global','True'
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'IgnoreCase','False'
If@Err<>0GoToLB
EXEC@Err=Sp_OAMethod@obj,'Replace',@RstOUTPUT,@source,@Str
If@Err<>0GoToLB
EXEC@Err=Sp_OADestroy@obj
If@Err<>0GoToLB
Return@Rst
LB:
EXECSp_OADestroy@obj
RETURNNull
End
--查询(把所有数字替换为空)
selectdbo.myreplace('d',字段,'')from表
B. sql:查询一个字段里面时不是全为数字
用ltrim
函数,如果提示未选定行,那么字段不全为数字,如果有返回值,那么全为数字
select
1
from
al
where
ltrim('12385x2','0123456789')
is
null
C. 一张表中有个两个字段分别录的值是2到6,查询不包括它们之间范围内的数值,如何写sql语句,求大神指点
“不在它们之间范围内的”
:非 范围相交侍尘叠(在范围内)的都算
==>select*fromthetable局和where6<开始桐谈盯值<or结束值<2
D. SQL里如何查询一个字段里不是数字类型的值出来
select * from 表 where isnumeric(字段) = 1
isnumeric(字段),如果为数字,则返回1,如果不为数字,则返回0~~~
E. sql 查询 不包含 某些字符串
sql 查询 不包含 某些字符串?
基础的总结和解释(基于SQL Server):
先来个基础的导图,来源于脚本之家:
基础的语句总结和解释:
1.选择前百分之多少的数据:
SELECT TOP 50 PERCENT * FROM Websites;2.常用通配符:通配符 描述
%替代 0个或多个字符
_替代一个字符
[charlist]
字符列中的任何单一字符
[^charlist]
或
[!charlist]
不在字符列
'%a' //以a结尾的数据
'a%' //以a开头的数据
'%a%' //含有a的数据
‘_a_’ //三位且中间字母是a的
'_a' //两位且结尾字母是a的
'a_' //两位且开头字母是a的
首先说下LIKE命令都涉及到的通配符:
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或者[!charlist] 不在字符列中的任何单一字符
其中搭配以上通配符可以让LIKE命令实现多种技巧:
1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
3、LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
4、LIKE'_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
5、LIKE'[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
6、LIKE'[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。
7、LIKE'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)3.别名:在下面的情况下,使用别名很有用:
在查询中涉及超过一个表
在查询中使用了函数
列名称很长或者可读性差
需要把两个列或者多个列结合在一起4.连接:不同的 SQL JOIN
在我们继续讲解实例之前,我们先列出您可以使用的不同的 SQL JOIN 类型:
INNER JOIN:如果表中有至少一个匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中一个表中存在匹配,则返回行
F. sql查询剔除字段中的数字,只保留不含数字的文本
/*用正则表达式或者自定义函数下面是用正则表达式的代码如果报错的话,需要开启Ole Automation Proceres exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Proceres',1;RECONFIGURE;exec sp_configure 'show advanced options', 0;RECONFIGURE;*/--能按正则表达式替换的函数Create Function [dbo].[MyReplace](@Reg Varchar(1000),@Source Varchar(4000),@Str Varchar(1000))returns sql_variant AsBegin Declare @Err Int Declare @obj Int Declare @Rst sql_variant EXEC @Err=Sp_OACreate 'VBScript.RegExp',@obj OUTPUT If @Err<>0 GoTo LB EXEC @Err=Sp_OASetProperty @obj,'Pattern',@Reg If @Err<>0 GoTo LB EXEC @Err=Sp_OASetProperty @obj,'Global','True' If @Err<>0 GoTo LB EXEC @Err=Sp_OASetProperty @obj,'IgnoreCase','False' If @Err<>0 GoTo LB EXEC @Err=Sp_OAMethod @obj,'Replace',@Rst OUTPUT,@source,@Str If @Err<>0 GoTo LB EXEC @Err=Sp_OADestroy @obj If @Err<>0 GoTo LB Return @RstLB: EXEC Sp_OADestroy @obj RETURN NullEnd --查询(把所有数字替换为空)select dbo.myreplace('\d',字段,'') from 表
G. 筛选出sql 查询结果中 不包含某个字符
执行sql:select cardno,name from cardtable where cardno not in (select cardno from cardtable where name='C');嵌套一个子查询来查找包含name包含C的cardno,然后再根据查询条件把cardno不包含的剔除掉。
运行如下:
(7)sql查询字段不包含数值扩展阅读
sql的梁斗嵌套查询包括hen多的子查询,in的子查询、带比谨渣并较运算符的子查询、带any/all的子查询、带exists的子查询以及基于派生表的子查询,这些祥迹查询嵌套使用可以达到强大的功能,比如筛选,过滤,排序,去重等等。
H. mySQL 里的查询不包含数字
SELECT * FROM `table` WHERE `test` NOT REGEXP '[0-9]+'
I. sql语句中查询某字段不含某字符的写法
1、创建测试表,
create table test_users(name varchar2(20), zw varchar2(20), zc varchar2(20));
J. sql语句如何判断字段是否为数字
sql语句判断字段是否为数字可以参考下面的例子:巧伍陆
select * from biao where isnumeric(zian)=0 查非数回字答
select * from biao where isnumeric(zian)=1 查纯数字
(10)sql查询字段不包含数值扩展阅读:
SQL参考语句
查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串孝顷)
排序:select * from table1 order by field1,field2 [desc]
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1