【发布时间】:2016-02-28 07:59:31
【问题描述】:
我正在尝试比较数据库中两个不同表中的两列。一列是 VARCHAR2(4 CHAR) 类型,另一列是 DECIMAL 类型。虽然我将这些列作为字符串拉入 JAVA 进行比较,但我遇到了这个问题:
列中的元素(十进制)为:123、456、789
比较列(varchar)的元素是:0123、0456、0789
所以我想知道是否有一种方法可以在我从数据库中提取它时删除这个前缀 0(比如某种 TRIM0()),这样两列中的元素会相同?
我试图避免在 JAVA 本身中处理此列以提高性能。
【问题讨论】:
-
如果您比较两个整数,您的问题将得到解决。我建议你将 varchars 转移到 int
-
我说的一样,在两个地方都使用相同的数字数据类型! LTRIM(列,'0')
-
@jarlh 在这里使用
LTRIM没有意义。字符串上的 LTRIM 将返回一个字符串。只需使用TO_NUMBER。
标签: sql oracle numbers type-conversion varchar