问题描述
嗨,目前我们有一个查询,如下所示,
从chk_ppl_val中选择计数 (不同的chk_ppl_val.serialnum) serialnum __ ndv,计数 (不同的chk_ppl_val.individual_id) 个人 _ ndv,其中
(在 (从data_upload中选择不同的string_value,其中id = '5379e360b0c8f9de684') 中的子字符串 (industry_code,1,4))
以上查询pull记录,如果行业代码的前4位与data_upload表中的string_value匹配。现在,而不是前4位匹配,我们需要更改上面的查询以基于string_value字段中的数据驱动。如果string_value包含2位数字,则行业代码应使用该2位数字来拉动类似的匹配,同样,如果它具有3,4,6位数字,则应在industry_code中拉动相应的类似匹配。
请指导我如何实现它。我们是否可以在运算符中有like子句。以下是数据示例。
从chk_ppl_val中选择计数 (不同的chk_ppl_val.serialnum) serialnum __ ndv,计数 (不同的chk_ppl_val.individual_id) 个人 _ ndv,其中
(在 (从data_upload中选择不同的string_value,其中id = '5379e360b0c8f9de684') 中的子字符串 (industry_code,1,4))
以上查询pull记录,如果行业代码的前4位与data_upload表中的string_value匹配。现在,而不是前4位匹配,我们需要更改上面的查询以基于string_value字段中的数据驱动。如果string_value包含2位数字,则行业代码应使用该2位数字来拉动类似的匹配,同样,如果它具有3,4,6位数字,则应在industry_code中拉动相应的类似匹配。
请指导我如何实现它。我们是否可以在运算符中有like子句。以下是数据示例。
Legends: IC - Industry code, SV - String_value, CO - current output, EO- Expected output IC SV CO EO 3145 31 123652 3145 31801 1236 123794 31801 450 45 12984 450 12366 678 12366 12366 923412 98741 123652 31453 1298 123794 123652 123783 12984 123794 987412 12984 678123 987412 678123
专家解答
如果您运行以下查询
您将获得行业代码匹配的chk_ppl_val中的所有行。我们需要 “区别”,因为联接可能会多次返回相同的行。一旦我有了这些,我们可以简单地做:
你可以这样做:
但这可能意味着一些繁重的排序/临时分段工作,或者取决于列的数据类型的问题。
select distinct rowid rid
from chk_ppl_val c,
data_upload d
where d.id = '5379e360b0c8f9de684'
and c.industry_code like d.string_value||'%'
您将获得行业代码匹配的chk_ppl_val中的所有行。我们需要 “区别”,因为联接可能会多次返回相同的行。一旦我有了这些,我们可以简单地做:
select *
from chk_ppl_val
where rowid in (
select distinct rowid rid
from chk_ppl_val c,
data_upload d
where d.id = '5379e360b0c8f9de684'
and c.industry_code like d.string_value||'%'
)
你可以这样做:
select distinct c.col1, c.col2, c.col3, ......
from chk_ppl_val c,
data_upload d
where d.id = '5379e360b0c8f9de684'
and c.industry_code like d.string_value||'%'
但这可能意味着一些繁重的排序/临时分段工作,或者取决于列的数据类型的问题。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




