我试图只从一个列中提取数值,该列包含排他数字的单元格和排他字母值的单元格,这样我就可以将该列与另一个只包含数值的列相乘。我试过了
SELECT trim(INTENT_VOLUME)
from A
WHERE ISNUMERIC(INTENTVOLUME)
还有
SELECT trim(INTENT_VOLUME)
from A
WHERE ISNUMERIC(INTENTVOLUME) = 1
两者都不起作用。我得到了误差函数 ISNUMERIC(VARCHAR)
不存在。有人能建议吗?谢谢您!
2条答案
按热度按时间3vpjnl9f1#
它高度依赖于数据库管理系统。
在sqlserver中,可以执行此操作的内置功能有限,因此下一个查询可能无法处理所有数据变体:
在oracle中,您可以正常使用regex:
mysql dbms还内置了regex
syqv5f0l2#
试试这个,它测试文本值是否可以转换为数字。。。
从where(intent_volume ~'^([0-9]+[.]?[0-9]*|[.][0-9]+)$')=“t”中选择intent_volume