美文网首页
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、

子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、

作者: 吉凶以情迁 | 来源:发表于2023-09-03 15:03 被阅读0次

    原来语句如下

        select ( select NO
            from Student aa   where X_ID in(419) and NO<>a.NO and GROUP=a.GROUP) from Student  a
        where a.X_ID in(419 ,192,307 ) and a.NO =378
    

    最简单的办法是加 一个top 1 只查询一条,那么如何打印出多条结果呢?

    如果出现多个就导致无法操作
    子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。 如何直接输出多个

    改用CROSS APPLY

    SELECT *
    FROM Student a
    CROSS APPLY (
        SELECT NO
        FROM Student  aa
        WHERE X_ID= 419 AND NO <> aNO AND GROUP = a.GROUP
    ) AS SubQueryResult
    WHERE a.X_ID IN (419, 192, 307) AND a.NO = 378
    

    相关文章

      网友评论

          本文标题:子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、

          本文链接:https://www.haomeiwen.com/subject/seofvdtx.html