在表EMPLOYEE中,我有一个带有varchar(100)类型的EMP_NAME列。我想找到所有这样的数字EMP_NAME,不包含字母。为此,我使用REGEXP,它工作正常。我尝试了另一种逻辑,查询如下:
select emp_name from test.employee where lower(emp_name)=upper(emp_name);
但它返回所有名称(数字和字母)。请告诉我这个查询有什么问题?
答案 0 :(得分:1)
试试这个
SELECT emp_name FROM test.employee WHERE concat('',emp_name * 1) = emp_name
答案 1 :(得分:0)
如果要检查数值,则检查数值,而不是检查小写名称是否与大写名称相同。
此外,通过您的方法,“^^^”的emp_name是数字,因为lower(“^^^”)是与上层(“^^^”)相同的“^^^”。