我是SQL新手,正在尝试解决以下问题:
我有一个马拉松表,有两个不同的年份,其中一个是马拉松比赛,还有一个专栏描述了运动员在特定年份参加的比赛。我想返回参加2001年而不是2000年的运动员的姓名。到目前为止,我尝试了不同的查询(exists、not-in和not等),但都没有成功。
你在找像
SELECT * FROM `ATHLETES_TABLE` WHERE `year` = '2001';
编辑:仅对于名称,将名称列n传递给SELECT
SELECT athlete FROM `ATHLETES_TABLE` WHERE `year` = '2001';
您还可以使用聚合函数和数组进行比较:
SELECT athlete
FROM marathon
GROUP BY athlete
HAVING NOT ARRAY_AGG(year) @> ARRAY[2000];
在寻找两年都没有参加的运动员时:
SELECT athlete
FROM marathon
GROUP BY athlete
HAVING NOT ARRAY_AGG(year) @> ARRAY[2000,2001];
或确实参加了2000年或2001年:
SELECT athlete
FROM marathon
GROUP BY athlete
HAVING ARRAY_AGG(year) && ARRAY[2000,2001];
在postgres中,您可以使用EXCEPT...
select athlete
from marathon
where year = 2001
except
select athlete
from marathon
where year = 2000
输出:
Johnson
例子: 例如:String str=“11/20”(MM/yy)希望通过在Java中以上述格式传递字符串来获取月份名称和年份(例如:11月/20)
问题内容: 在SQL Server数据库中,我记录了人们的出生日期。是否有仅使用SQL来计算给定日期的人的年龄的简单方法? 使用 DATEDIFF(YEAR,DateOfBirth,GETDATE()) 不起作用,因为它仅查看日期的年份部分。例如 DATEDIFF(YEAR,‘2007年12月31日’,‘2008年1月1日’) 返回1。 问题答案: 查看本文:如何使用SQL代码计算一个人的年龄 这
如何防止用户在“JTextField”中输入某些字符,如果输入该字符,则不要在文本字段中显示它
我在使用IMDb数据集时遇到了一个问题,我似乎无法解决这个问题。这个问题要求只放映1995年制作的电影。问题是,这一年是与每一个电影标题一起列出的,即:“玩具总动员(1995)”。你怎么能从一串文本中刮出年份? 问题是:
问题内容: 在两个具有相同列名的表上创建VIEW时,如何避免MySQL中的dup列名错误,如下所示 问题答案: 使用别名作为列名
问题内容: 使用,我有一个用于创建视图的查询,并且试图显示 月份的名称 而不是整数。 在我的数据库中,位于列中。查询中返回日期的行是: 这将返回整数的年份和月份的列。我想返回月份名称)。我试过了: 这显然是不正确的,因为我得到 ‘AS’附近的语法不正确 信息。我的查询的正确语法是什么? 问题答案: 这将为您提供月份的全名。 如果您只想要前三个字母,可以使用此