根据给出的SQL查询语句,有几个问题可能导致查询不正确:

  1. 子查询中的trunc函数使用了错误的语法。在Oracle数据库中,trunc函数的语法是trunc(date, format),其中date是要截断的日期,format是日期的格式。你的子查询中,你只提供了一个日期,没有指定要截断的格式。所以,你需要为trunc函数提供一个有效的格式。

  2. 你的子查询中使用了'yyyy'作为trunc函数的格式,这是不正确的。在Oracle数据库中,正确的格式是'YYYY'(大写字母)。

  3. 在主查询中,你使用了子查询的结果作为WHERE条件的一部分。这是一个有效的用法,但是你需要将子查询的结果用括号括起来,以确保优先级正确。

修正后的SQL查询语句可能是这样的:

SELECT sno, sname, sbirthday
FROM t_students
WHERE trunc(sbirthday, 'YYYY') = (
    SELECT trunc(sbirthday, 'YYYY')
    FROM t_students   
    WHERE sno = '108'
);

请注意,这只是一个猜测,具体的修正可能需要根据实际情况进行调整。另外,如果你提供更多的信息和错误消息,我可以给出更精确的答案

sqlselect snosnamesbirthdayfrom t_studentswheresbirthday=truncselect sbirthdayfrom t_students where sno=108yyyy为什么不对

原文地址: https://www.cveoy.top/t/topic/hM3u 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录