暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 从表中选择行

askTom 2017-09-21
423

问题描述

嗨,

我有一个cust_bug_test表,有2列 (ROOT_CAUSE,BUG_NUMBER),如下所示:

创建表cust_bug_test(ROOT_CAUSE VARCHAR(250),BUG_NUMBER编号不为空主键)
插入cust_bug_test(ROOT_CAUSE,BUG_NUMBER) 值 ('这是 # test问题。',25940149)
插入cust_bug_test(ROOT_CAUSE,BUG_NUMBER) 值 ('这是一个 # 时序问题',25768241)
插入cust_bug_test(ROOT_CAUSE,BUG_NUMBER) 值 ('# timing',26167402)
插入cust_bug_test(ROOT_CAUSE,BUG_NUMBER) 值 ('这是 # test问题。',23250474)
插入cust_bug_test(ROOT_CAUSE,BUG_NUMBER) 值 ('这是一个 # 代码问题',23742921)

现在我的要求是从第一列中提取主题标签单词 (不带 #),从第二列中提取相应的BUG_NUMBER列。

例如,我的查询应该返回2列,如下所示:

标记错误 _ 编号
----- --------
测试25940149
计时25768241
计时26167402
测试23250474
代码23742921


请让我知道上述结果的查询。
我正在尝试为上述结果编写查询,但是在过滤 # 之后只能获得第一列,并且无法获得相应的BUG_NUMBER。

选择替换 (标记,'#',') 作为标记从 (
使用texttab作为
(
选择
根 _ 原因作为文本
从cust_bug_test,其中ROOT_CAUSE不为空
)
选择regexp_substr(text,'\#[a-z0-9_]+',1,level,'i') as tag
来自texttab
通过regexp_substr连接 (文本,'\ #[a-z0-9 _] ',1,级别,'i') 不为空) t

我上面的查询结果只有1列。:

标签
----
测试
计时
计时
测试
代码


谢谢,
子哈希

专家解答

像这样的东西?

SQL> @drop cust_bug_test

Y1                      Y2
----------------------- -------------------------
TABLE                   cascade constraints purge

1 row selected.


Table dropped.

SQL> create table cust_bug_test(ROOT_CAUSE VARCHAR(250), BUG_NUMBER NUMBER NOT NULL PRIMARY KEY);

Table created.

SQL> insert into cust_bug_test(ROOT_CAUSE, BUG_NUMBER ) values('This is a #test issue.', 25940149);

1 row created.

SQL> insert into cust_bug_test(ROOT_CAUSE, BUG_NUMBER ) values('This is a #timing issue', 25768241);

1 row created.

SQL> insert into cust_bug_test(ROOT_CAUSE, BUG_NUMBER ) values('#timing', 26167402);

1 row created.

SQL> insert into cust_bug_test(ROOT_CAUSE, BUG_NUMBER ) values('this is #test issue.', 23250474);

1 row created.

SQL> insert into cust_bug_test(ROOT_CAUSE, BUG_NUMBER ) values('This is a #code issue', 23742921);

1 row created.

SQL>
SQL> select regexp_substr(root_cause,'\#[a-z0-9_]+',1,1,'i') hashtag, bug_number
  2  from cust_bug_test;

HASHTAG                        BUG_NUMBER
------------------------------ ----------
#test                            25940149
#timing                          25768241
#timing                          26167402
#test                            23250474
#code                            23742921

5 rows selected.

SQL>
SQL> select regexp_substr(root_cause,'\#([a-z0-9_]+)',1,1,'i',1) hashtag, bug_number
  2  from cust_bug_test;

HASHTAG                        BUG_NUMBER
------------------------------ ----------
test                             25940149
timing                           25768241
timing                           26167402
test                             23250474
code                             23742921

5 rows selected.

SQL>
复制


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论