当前位置: 首页 > 知识库问答 >
问题:

如何过滤SQL中某一年份存在的名称?[重复]

松正阳
2023-03-14

我是SQL新手,正在尝试解决以下问题:

我有一个马拉松表,有两个不同的年份,其中一个是马拉松比赛,还有一个专栏描述了运动员在特定年份参加的比赛。我想返回参加2001年而不是2000年的运动员的姓名。到目前为止,我尝试了不同的查询(exists、not-in和not等),但都没有成功。

共有3个答案

高寒
2023-03-14

你在找像

SELECT * FROM `ATHLETES_TABLE` WHERE `year` = '2001';

编辑:仅对于名称,将名称列n传递给SELECT

SELECT athlete FROM `ATHLETES_TABLE` WHERE `year` = '2001';
应志用
2023-03-14

您还可以使用聚合函数和数组进行比较:

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];
盖雪峰
2023-03-14

在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’附近的语法不正确 信息。我的查询的正确语法是什么? 问题答案: 这将为您提供月份的全名。 如果您只想要前三个字母,可以使用此