一个sql语句查询问题!!(50分)

  • 主题发起人 主题发起人 雨林18
  • 开始时间 开始时间

雨林18

Unregistered / Unconfirmed
GUEST, unregistred user!
在a表里有一个字段是char型的a1
现在我想用一条sql查出里面所填的不是数字的记录,如何实现,请高手指教!!
 
高手救命呀!
 
你用的是什么数据库?
 
不太好弄!
比如:a1长度为5那么就是
var
i:integer;
sqltext,s:string;
begin
s:='and ';
for i:=1 to 5 do
begin
s:=s+copy(a1,i,1)<>'1' and ....copy(a1,i,1)<>'9';
end;
sqltext:='select * from a where True %s';
if ADOQuery1.active then ADOQuery1.close;
ADOQuery1.sql.text:=format(sqltext,);
ADOQuery1.open;
end;
随手写的,你试试吧!
 
楼上的谢谢了,但我还是想用SQL来实现!
to Avalon 是sql server2000
 
ISNUMERIC
确定表达式是否为一个有效的数字类型。

语法
ISNUMERIC ( expression )

参数
expression

要计算的表达式。

返回类型
int

注释
当输入表达式得数为一个有效的整数、浮点数、money 或 decimal 类型,那么 ISNUMERIC 返回 1;否则返回 0。返回值为 1 确保可以将 expression 转换为上述数字类型中的一种。

示例
A. 使用 ISNUMERIC
下面的示例返回 1,这是因为 zip 列包含有效的数值。

USE pubs
SELECT ISNUMERIC(zip)
FROM authors
GO

B. 使用 ISNUMERIC 和 SUBSTRING
下面的示例对于 titles 表中的所有书名都返回 0,这是因为没有一个书名是有效的数值。

USE pubs
GO
-- Because the title column is all character data, expect a result of 0
-- for the ISNUMERIC function.
SELECT SUBSTRING(title, 1, 15) type, price, ISNUMERIC(title)
FROM titles
GO
 
這個不是很難,不過要看你所查的表的這個char字段能多少位,如果是一位就好辦了!
select *
from TableName
where a1 not between '0' to '9'

如果是多位,就得用游標了!
 
我写是就是sql语句,看不出来吗?
是sql语句的叠加!
 
多人接受答案了。
 
后退
顶部