NameError_7 2023-09-24 09:33 采纳率: 0%
浏览 6

sql里char类型比大小

要求查询出学号大于谷雨(谷雨的学号为s25)年龄小于谷雨的学生姓名
于是用了

select sname
from s
where sno >
    (select sno 
    from s  
    where sname ='谷雨')
and age <
    (select age 
     from s 
     where sname ='谷雨')

但最终结果有学号为s3到s9的学生姓名

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-24 12:25
    关注

    【以下回答由 GPT 生成】

    可以使用子查询的方式将关闭结果与外部查询的结果进行比较,以解决该问题。

    以下是优化后的查询语句:

    select sname 
    from s 
    where sno > (
        select sno 
        from s 
        where sname = '谷雨'
    ) 
    and age < (
        select age 
        from s 
        where sno = (
            select sno 
            from s 
            where sname = '谷雨'
        )
    );
    

    通过将子查询的条件从sname改为sno,确保内层子查询仅返回指定学生的学号。这样,外部查询将使用该学号与其他学生的学号进行比较,并确保返回结果符合要求。

    请注意,由于没有提供数据表结构和示例数据,因此无法进行进一步的测试和验证。以上代码仅是一种优化方案,但无法保证没有其他错误。



    【相关推荐】


    • 这篇博客: SQL作业中的 19.查询所有员工姓名以S或s开头的所有员工信息 部分也许能够解决你的问题。

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 9月24日