【发布时间】:2015-06-12 17:11:53
【问题描述】:
对不起,标题含糊;我真的找不到一个很好的方法来把它变成一个简短的句子。所以这是我能想到的最详细的问题:
假设我有一张来自杂货店的下表,它连接了几个表(通过将供应商 ID、水果 ID 和供应商合同到期日期放在一个字段中,这些字段都是从我无法直接访问的表中获取的:
FRUIT ------------ EXTERNAL_ID
Apple 12AH==F1899==2008-04-04
Banana 167E==F17621==2009-01-18
Kiwi 892==F1009==2010-01-10
Pear 110YU==F987==2009-02-22
如果我需要将 external_ID 的第一部分放入一个新列中,该列添加到当前表的末尾以便于比较。然后对新列中的中间部分(代码开头总是有'F')做同样的事情......我该怎么做呢?
请记住,第一部分可以改变长度,所以我不能基于长度。我一直在考虑可能会一直到查询在字段中点击“=”,但我不知道该怎么做。
编辑:如果有帮助,请使用 TOAD Oracle。
【问题讨论】:
-
这将完全取决于您使用的 SQL 引擎,因为它们对于 char-in-string 和 subtsring 操作都有不同的功能。请添加产品特定标签。
-
您实际上是在尝试拆分分隔列表(您的分隔符是 == ),这是一个古老的 SQL 问题。这里有一篇关于多种方法的综合帖子:sqlperformance.com/2012/07/t-sql-queries/split-strings
-
@MartianCodeHound - 您的链接是针对 SQL Server 的,但操作问题是关于 Oracle 的。
-
啊,这里有Oracle版本:blogs.oracle.com/aramamoo/entry/…