数据库查询语句,如何排除有数字的名称
比如名称有的是abcd123,abcd356,我想要排除后面的数字的查询,nolike'%[0-9]'这里的【0-9】是我写的,不能用,这里要用什么代表所有不规则的数字呢...
比如名称有的是abcd123,abcd356,我想要排除后面的数字的查询, no like '%[0-9]'
这里的【0-9】是我写的,不能用,这里要用什么代表所有不规则的数字呢。
like '%[^0-9]' 只是sql查询语句而已,mysql数据库的,我要查询的是尾数不能是数字的。not like '%[0-9]'这样查出来确全部显示出来
到底是什么问题呢 展开
这里的【0-9】是我写的,不能用,这里要用什么代表所有不规则的数字呢。
like '%[^0-9]' 只是sql查询语句而已,mysql数据库的,我要查询的是尾数不能是数字的。not like '%[0-9]'这样查出来确全部显示出来
到底是什么问题呢 展开
1个回答
展开全部
如果是SQLSERVER Or Access
select * from tab where isnumeric(name)<>0
如果ORACLE ,由于Oracle没有自带的判断数字的函数,需要自创建函数isnumeric
CREATE OR REPLACE FUNCTION isnumeric (str IN VARCHAR2)
RETURN NUMBER
IS
v_str FLOAT;
BEGIN
IF str IS NULL
THEN
RETURN 0;
ELSE
BEGIN
SELECT TO_NUMBER (str)
INTO v_str
FROM DUAL;
EXCEPTION
WHEN INVALID_NUMBER
THEN
RETURN 0;
END;
RETURN 1;
END IF;
END isnumeric;
用法:
select * from tab where isnumeric(name)<>0
select * from tab where isnumeric(name)<>0
如果ORACLE ,由于Oracle没有自带的判断数字的函数,需要自创建函数isnumeric
CREATE OR REPLACE FUNCTION isnumeric (str IN VARCHAR2)
RETURN NUMBER
IS
v_str FLOAT;
BEGIN
IF str IS NULL
THEN
RETURN 0;
ELSE
BEGIN
SELECT TO_NUMBER (str)
INTO v_str
FROM DUAL;
EXCEPTION
WHEN INVALID_NUMBER
THEN
RETURN 0;
END;
RETURN 1;
END IF;
END isnumeric;
用法:
select * from tab where isnumeric(name)<>0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询