‘壹’ sql语句 查询字段中包含某个数字的列信息
select * from info where (',' + id + ',') like ('%,' + '9' +',%')
‘贰’ SQL中如何查询字段中是否包含指定数字
where条件这样写试试
wherenumlike'1,%'ornumlike'%,1,%'ornumlike'%,1'
‘叁’ sql语句 查询字段中包含某个数字的列信息
select * from 表 where ','+列4+',' like('%,2,%')
一般情况下,像这种序列填充列,在设计时不会在列中的前后加逗号,可能的数据:
2 或者 2,22 又或者 0,1,2
所以一般放在查询中人为的给列值前后加逗号,再模糊匹配.
‘肆’ SQL怎么取字符串中的数字
1、创建测试表,
create table test_str(id int, v_str varchar2(20));
‘伍’ 如何把SQL SERVER中一个含有数字的字符串找出来
在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:
1. convert(int,字段名) 例如:select convert(int,'3')
2. cast(字段名 as int) 例如:select cast('3' as int)
其实,一般情况下没有必要把字符串转换为数字类型
假如需要比较两个字段是否相等,但是一个字段为字符串类型,一个为数字类型,用“=”比较两个值是否相等时,SQL SERVER会自动把字符串转换为数字再比较的!
例如:
select da.TITLE_NAME,dsc.NAME
from dbo.DV_DUTY dd
inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA)
left join DV_ASSET da on(da.ID=dd.RECORD_ID and dd.TYPE='2')
where dd.AREA is not null
这个SQl中,inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA) 中dsc.ID为数字类型,dd.AREA为字符类型,相当于这样on(1='1')的判断,这时候就会自动吧字符串的'1'转换为数字类型再比较的。
但是也有弊端,一旦字符类型转换为数字类型出错(说明字符串的确就非数字组成的),SQL就会抛出异常。
SQL SERVER 2005中有判断字段是否为数字的函数:
ISNUMERIC(字段名) -----假如字段是数字类型返回1,不是就返回0
但是好像有的时候不好使,比如:select isnumeric('3,34') 就返回1
说明这个函数对字段值中全是数字但是数字间用“,”和“.”(逗号或点)隔开的都视为数字了!
‘陆’ sql查询语句结果集数目如何获取
1、创建测试表,插入数据:
createtabletest
(idint)
insertintotestvalues(1)
insertintotestvalues(2)
insertintotestvalues(3)
insertintotestvalues(null)
2、查询记录数为两种,一种是count(*),一种是count(字段值):
测试一:
selectcount(*)fromtest
结果:
说明:如果count(字段名)的字段中含有空值,则在count中不计数,而count(*)则是查询全部的行数。