我有一列显示了我们公司已经经历的项目的标题,另一列有几个小时为每个项目工作。在SQL语句中查找字符串中的字符串
标题中包含关键字的项目中,关键字由格式定义的“关键词:”即“ETL:”
一些项目有多个关键词,即“客户:ETL:ASCX:”
因此,例如, ,项目名称可能是'客户:ETL:ASCX:更新导入过程'
我不知道关键字提前。
我想要小时,项目总数,对于一个给定的关键字 因此,让我们使用以下两个项目冠军为例:
- 客户:ETL:ASCX:人士20小时 工作放入它。
- 客户端:ETL: 桥:有10个小时的工作投入到 呢。
报告应该给:
Keyword - Total Projects - Total Hours
Client: - 2 -30
ETL: - 2 - 30
ASCX: - 1 - 20
Bridge: - 1 - 10
获得一个关键字的第一个实例很容易 - 只需串;但找到嵌套关键字证明是困难的。
可以在SQL内完成嵌套搜索吗?
任何接受者?
UPDATE(最初发布的 “答案”):
进一步的例子:
比方说,我有两个记录与以下项目名称:
Record 1: Interface: ETL:
Record 2: ETL:
记录1具有10小时,记录2有30小时。
现在,我的代码捕获的第一关键字的实例,所以我的输出现在是(关键字:小时)
ETL: 30
Interface: 10
但是,要求是要表明,ETL已拨出40小时,因为两个项目有ETL作为关键字:
ETL: 40
Interface: 10
那么肯定,我可以用一个喜欢找ETL,或接口的所有实例,但我需要打破在选择每个关键字。在上面的例子中,如果我使用了类似的'%ETL:%',我会得到两个记录,但我希望看到所有关键字的全部小时数,按关键字细分。
也许一个更好的问题是:
我怎样才能得到看起来像这样的记载:
Interface: ETL:
到输出看起来像这样:
Interface:
ETL:
SQL内?
我想了解问题。您正试图搜索项目列中是否出现特定子字符串的记录?如果是这样就像使用'LIKE'关键字一样简单,'WHERE Project LIKE'%ETL%'' – 2011-06-16 14:34:41
“获取关键字的第一个实例很容易”,您可能希望包含这个简化/匿名版本以帮助展示你想要完成的事情。向我们提供样本数据清单以及您想要实现的内容也有所帮助。 – 2011-06-16 14:39:43
看到我的OP,我给出了例子和预期的输出。在我的例子中,我有两个项目记录,我期望在预期输出中有4个记录,因为项目记录中有4个不同的关键字。我正在使用SUBSTR(project_title,1,INSTR(SUBSTR(porject_title,1(instr(project_title,'')),':')),但只发现关键字的第一个实例,而不是嵌套的 – 2011-06-16 14:51:06