0
点赞
收藏
分享

微信扫一扫

处理字符串_11_判断一个字符是否是数字


                           判断一个字符是否是数字

需求描述

需求:将临时表里判断data字段里哪些是数字.

解决方法:这里通过函数isnumberic或者regexp完成该效果.

注: 数据库数据集SQL脚本详见如下链接地址

​​员工表结构和数据初始化SQL脚本​​

 

SQL代码

-- Mysql:
DELIMITER $$
DROP FUNCTION IF EXISTS `IsNum` $$
CREATE FUNCTION `IsNum` (str VARCHAR(25)) RETURNS INT
BEGIN
DECLARE iResult INT DEFAULT 0;
IF ISNULL(str) THEN return 0; END IF;-- NULL 字符串
IF str = '' THEN return 0; END IF;-- 空字符串
SELECT str REGEXP '^[0-9]*$' INTO iResult;
IF iResult = 1 THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END $$
DELIMITER ;


-- 或者使用正则表达式:
SELECT data FROM
(
SELECT '63' AS data
UNION ALL
SELECT '36(' AS data
UNION ALL
SELECT '3(6' AS data
UNION ALL
SELECT '(36' AS data
UNION ALL
SELECT '36$' AS data
UNION ALL
SELECT '' AS data
UNION ALL
SELECT NULL AS data
)A
-- WHERE IsNum(data) = 1
WHERE data REGEXP '^[0-9]*$' = 1 AND data IS NOT NULL AND data <> '';

-- 或者直接通过函数IsNum(data) = 1来判断,见注释部分.

Sql Server:
SELECT data FROM
(
SELECT '63' AS data
UNION ALL
SELECT '36(' AS data
UNION ALL
SELECT '3(6' AS data
UNION ALL
SELECT '(36' AS data
UNION ALL
SELECT '36$' AS data
UNION ALL
SELECT '' AS data
UNION ALL
SELECT NULL AS data
)A
WHERE ISNUMERIC(data) = 1

执行结果

处理字符串_11_判断一个字符是否是数字_字符串

举报

相关推荐

0 条评论