技术问题,sql查询语句相关……
- 新生select语句,有没有办法返回某个字段的数据是只由数字组成的记录。
比如对于a字段,a=1 or 23 or 3451 or 9874这些都符合以上条件,而a=adb or $eer or +33这些就不对
感觉应该是不难的问题,有就有没就没,懒得去技术论坛问了…… - iorilu看看有没有isnumber之类的函数
- 孤云半月
那我就来个史上最笨的SQL语句好了 'select * from aaa where bbb like '%1%' or bbb like '%2%'.......or bbb like '%0%' ':D
- yangzhicai一下子也想不出来怎么写
- yangzhicai这样不是都选出来了?
- voodooselect * from table where isnumeric(a)=1
- iorilu这有啥用,lz要得是只有数字的,你这个是包含数字的,lz用的啥数据库啊,不同数据库提供函数都不一样的
- 孤云半月
不好意思没看清题目
试试这样的行不行 Select * from TableName Where 字段 Like '%[^0-9]%' 这句造SQLSERVER2000下可用
6#的 至少在SYBASE下不可用...
[本帖最后由 孤云半月 于 2007-12-11 17:11 编辑] - 新生sqlserver2005
- 沉默の狙击手
+1
- iorilu居然是baidu
- 788414
sql都忘记的差不多
学了招,泄泻 - 新生这个很神奇地把a字段为'+'的字段搜出来了……
- 新生10分钟以内能google到的我基本不会问人。其实干这行得出的经验是,一边google一边上网问是最有效率的
- leonWong因为把+当成是正号了
PS: sqlserver 玩的不多,内置函数不清楚,帮你去msdn看看
[本帖最后由 leonWong 于 2007-12-11 18:57 编辑] - 比卡丘declare @t table(str varchar(50))
insert into @t select 1
insert into @t select '=12+'
insert into @t select '12+'
insert into @t select '+12'
insert into @t select '12-'
insert into @t select '-12'
insert into @t select 2
insert into @t select 3451
insert into @t select '美好'
insert into @t select 9874
insert into @t select 'tgfc'
select * from @t where isnumeric(str)=1 and str not like '%+%' and str not like '%-%'
用LIKE效率有点低
对于不是数字的字符(如加号 (+)、减号 (-))和有效货币符号(如美元符号 ($))字符,ISNUMERIC 将返回 1,含小数点也会返回1,不需要也like掉
isnumeric对12+或12-这样的返回是0
结果 - 新生下班了,回家。
先谢谢提供信息的各位,明天再看 - 新生临走前看了一下,pikatyu提供的方案看来最为完善。
- 788414Sql sever 2005?
等下装2005试下
2000可以实现么?
泄泻比卡丘 - kiler写一个IsNumber的function啦,也不是很难的,懒得写了。
- zxsoft我实际试了一下。isnumeric会把'%-'和'%+'过滤掉。比版的表不加and 后的东西显示
str
--------------------------------------------------
1
+12
-12
2
3451
9874
所以加like限制的时候没有必要限制后面的加减号。直接用not like '-%' and not like '+%'即可。但是这样就没有必要用like了。于是优化成下面的代码。效率会高些吧?:D
select * from @t where isnumeric(str)=1 and left(str,1)<>'+' and left(str,1)<>'-'[本帖最后由 zxsoft 于 2007-12-12 04:25 编辑] - kiler其实你可以先滤掉'+','-'再isnumeric
select * from @t where isnumeric(RePlace(RePlace(str,'+',''),'-',''))=1 - iorilu高那么麻烦,写个function了,对每个字符循环下判断不就完了
- zxsoft我怎么觉得没我写的效率高?