sql 如何查询表的某一列是否包含另外一个表的某列值 20

问题如下图所示... 问题如下图所示 展开
 我来答
Q1017632646
2018-02-09 · TA获得超过345个赞
知道小有建树答主
回答量:440
采纳率:68%
帮助的人:103万
展开全部

原表B:

1)实现一对一:

SQL:

SELECT DISTINCT CUSTOMER,REGEXP_SUBSTR(SHANGPIN, '[^,]+', 1, LEVEL) AS SHANGPIN  

FROM CUSTOMERS  

CONNECT BY LEVEL <= LENGTH(SHANGPIN) - LENGTH(REGEXP_REPLACE(SHANGPIN, ',', ''))+1

2)最终效果实现:

SQL:

SELECT A.SHANGPIN 产品,COUNT(A.CUSTOMER) 购买客户数 

FROM (SELECT DISTINCT CUSTOMER,REGEXP_SUBSTR(SHANGPIN, '[^,]+', 1, LEVEL) SHANGPIN  

FROM CUSTOMERS  

CONNECT BY LEVEL <= LENGTH(SHANGPIN) - LENGTH(REGEXP_REPLACE(SHANGPIN, ',', ''))+1) A 

GROUP BY SHANGPIN

这里我用的是Oracle数据库,如果你用的别的数据库,应该也有功能类似的相关函数。

百度网友d9b156865
2018-02-09 · TA获得超过165个赞
知道小有建树答主
回答量:384
采纳率:33%
帮助的人:195万
展开全部
把表B先拆分,每个产品一行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式