我正在DB2中编写一个查询,我遇到了一些麻烦。我有一个实际上是STRING值的字段,但数据中的所有值实际上都是数字。这是因为它们稍后在java中转换为INT并在另一个查询中使用。我需要修改我的查询,实际上不包括包含A到Z的字符串(因此查询返回的字符串可以转换为int)。这样做的正确AND条款是什么?这需要添加到我的查询而不是存储过程
答案 0 :(得分:0)
如果您的区域中的数字可以包含symbole numeric","然后尝试这个
select * from yourtable
where translate(yourzone, ' ', '0123456789,')=''
否则试试这个
select * from yourtable
where translate(yourzone, ' ', '0123456789')=''
答案 1 :(得分:0)
如果你的db2版本可以使用regexp_like,你可以这样做:
用“。”作为十进制符号
select * from yourtable
where REGEXP_LIKE(trim(yourzone) , '^\d+(\.\d*)?$')
用“,”作为十进制符号
select * from yourtable
where REGEXP_LIKE(trim(yourzone) , '^\d+(\,\d*)?$')
不带小数符号(仅限整数)
select * from yourtable
where REGEXP_LIKE(trim(yourzone) , '^\d+$')