软件开发

关于SQL语句写法,请高手指教

有如下数据:
F1           F2
A             v1
A             v2
B             v1
B             v2
B             v3
C             v1

当F2字段条件传入v1时需返回:
A
B
C
当F2字段条件传入v1,v2时需返回:
A
B
当F2字段条件传入v1,v2,v3时需返回:
B
参与7

6同行回答

ppjava2009ppjava2009系统工程师用友汽车信息科技(上海)有限公司
大致意思是返回传入参数所共有的数据吧。,比如v1有A,v2也有A,v3也有A时传入v1,v2,v3后A肯定返回。显示全部
大致意思是返回传入参数所共有的数据吧。,比如v1有A,v2也有A,v3也有A时传入v1,v2,v3后A肯定返回。收起
互联网服务 · 2013-09-25
浏览620
ppjava2009ppjava2009系统工程师用友汽车信息科技(上海)有限公司
差不多是下面的意思吧:select f1 from t where f2='v1' group by f1 having count(1)=1@select f1 from t where (f2='v1' or f2='v2') group by f1 having count(1)=2 @select f1 from t where (f2='v1' or f2='v2' or f2='v3') group by f1 having count(1)=3 @...显示全部
差不多是下面的意思吧:
select f1 from t where f2='v1' group by f1 having count(1)=1@
select f1 from t where (f2='v1' or f2='v2') group by f1 having count(1)=2 @
select f1 from t where (f2='v1' or f2='v2' or f2='v3') group by f1 having count(1)=3 @收起
互联网服务 · 2013-09-25
浏览578
飘叶飘叶数据库管理员volkswagen
第二种办法适用于V9.7.4以前的版本WITH x(F1,cnt,F2,empno, len)AS (SELECT F1 ,count(*) over(PARTITION BY F1 ),CAST(F2 AS VARCHAR(100)),F2 ,1    FROM aaaa    UNION ALL     SELECT x.F1,x.cnt,x.F2||','||e.F2,e.F2, x.len+1 ...显示全部
第二种办法适用于V9.7.4以前的版本
WITH x(F1,cnt,F2,empno, len)
AS (SELECT F1 ,count(*) over(PARTITION BY F1 ),CAST(F2 AS VARCHAR(100)),F2 ,1
    FROM aaaa
    UNION ALL
    SELECT x.F1,x.cnt,x.F2||','||e.F2,e.F2, x.len+1
    FROM aaaa e,x
    WHERE e.F1=x.F1 AND  e.F2>x.empno
    )

SELECT F1,F2
FROM x
WHERE len=cnt --AND F2 LIKE 'V1,V2%'
ORDER BY F1收起
汽车 · 2013-09-25
浏览648
mdkiimdkii软件开发工程师bocn
没看懂你的逻辑。。。显示全部
没看懂你的逻辑。。。收起
银行 · 2013-09-25
浏览561
飘叶飘叶数据库管理员volkswagen
如果是9.7.4版本以后SELECT F1FROM (SELECT F1,          LISTAGG(F2, ',') WITHIN GROUP(ORDER BY F2)         AS F2       FROM aaaa       GROUP BY F1) tmpW...显示全部
如果是9.7.4版本以后
SELECT F1
FROM
(
SELECT F1,
         LISTAGG(F2, ',') WITHIN GROUP(ORDER BY F2)
         AS F2
      FROM aaaa
      GROUP BY F1
) tmp
WHERE F2 LIKE 'V1,V2,V3%'收起
汽车 · 2013-09-25
浏览630
飘叶飘叶数据库管理员volkswagen
你都没讲明白怎么回事,谁帮你写啊。你的条件是啥,就一个返回。。。你是要写成procedure吗?显示全部
你都没讲明白怎么回事,谁帮你写啊。你的条件是啥,就一个返回。。。你是要写成procedure吗?收起
汽车 · 2013-09-25
浏览621

提问者

hzevan
其它crea-union

问题状态

  • 发布时间:2013-09-25
  • 关注会员:1 人
  • 问题浏览:4753
  • 最近回答:2013-09-25
  • X社区推广