zoukankan      html  css  js  c++  java
  • sql 如何应对子查询返回数据有多条 我就是要返回数据有多条

    SELECT
    	*
    FROM
    	SUSE_DEV.PROJECT_LISTING
    INNER JOIN SUSE_DEV.PROJECT_AUCTION ON SUSE_DEV.PROJECT_LISTING.PROJECT_CODE on (
    	SELECT
    		*
    	FROM
    		SUSE_DEV.PROJECT_AUCTION
    	WHERE
    		SUSE_DEV.PROJECT_AUCTION.GMT_START > SYSDATE
    )


    
    


    这段SQL里的子查询是肯定会返回多条的。一般来说,用ON是根本不能解决这样的问题,有些人说,可以用 

    and rownum = 1
    SELECT
    	*
    FROM
    	SUSE_DEV.PROJECT_LISTING
    INNER JOIN SUSE_DEV.PROJECT_AUCTION ON SUSE_DEV.PROJECT_LISTING.PROJECT_CODE on (
    	SELECT
    		*
    	FROM
    		SUSE_DEV.PROJECT_AUCTION
    	WHERE
    		SUSE_DEV.PROJECT_AUCTION.GMT_START > SYSDATE and rownum = 1
    
    )

    这样只能处理返回的值的的确确只有一条的情况,那如果我要返回的有多条呢?答案就是用in
    SELECT
    	*
    FROM
    	SUSE_DEV.PROJECT_LISTING
    INNER JOIN SUSE_DEV.PROJECT_AUCTION ON SUSE_DEV.PROJECT_LISTING.PROJECT_CODE IN (
    	SELECT
    		*
    	FROM
    		SUSE_DEV.PROJECT_AUCTI
    IN
    	WHERE
    		SUSE_DEV.PROJECT_AUCTION.GMT_START > SYSDATE
    )
    
    这样就可以了。有人说用exists也可以,我没有试过。有兴趣大家可以试试。
    
    

  • 相关阅读:
    C primer plus 摘抄(第三章 数据和C)
    lambda表达式+python内置函数
    补充(pass)
    If语句和while语句
    解释器和编译器的区别
    关于python编码
    初识Python
    unity学习(一)ide窗口
    unity学习
    redis实践 —— redisReply简析
  • 原文地址:https://www.cnblogs.com/xiaowangba/p/6314194.html
Copyright © 2011-2022 走看看