con*_*att 1 sql oracle oracle10g
Oracle版本:10g
我正在尝试使用该MIN函数来查找数据集的最小值/最小值.我正在执行MIN的VARCHAR2列是一列.此列将包含数值或值" - ",表示该值不适用.
在MIN()列上执行函数时,始终返回" - ".
我想找到一种方法来排除 MIN语句中计算的' - '.我不能在语句中使用WHERE子句来过滤掉带有' - '的列,因为这会排除有效数据.
注意:这是一个巨大的遗留查询(500多行),因此重写这个大规模查询并不是一个真正的选择.
MIN(CASE WHEN ColX = '--' THEN NULL ELSE ColX END)
这在SQL Server中是有效的,我认为也可能适用于Oracle.
作为旁注,永远不要在字符串字段中存储数字数据.
从空间角度来看效率很低,在进行不等式比较时会得到一些奇怪的结果.
如果表中有这些行:
010
009
1
Run Code Online (Sandbox Code Playgroud)
该MAX值将1和MIN值将是009