SQL需要名字最长的月份出生的人

SQL需要名字最长的月份出生的人,sql,Sql,我有一个关于SQL的问题。我必须提出一个问题,让我: 出生在名字最长月份的人。那么在九月, 我正在使用apex.oracle.com,我必须使用我学校的数据库 当我直接寻找9月份出生的人时,情况并不好。我需要一个查询,它给出的结果与我不知道9月是名称最长的月份时相同 我知道这是个愚蠢的问题,但这是为了学校 对不起,如果我的英语有时不好。我是荷兰人 希望你能帮助我: 到目前为止我已经知道了,但我不知道如何进一步 SELECT voornaam, tussenvoegsels, achternaam

我有一个关于SQL的问题。我必须提出一个问题,让我:

出生在名字最长月份的人。那么在九月,

我正在使用apex.oracle.com,我必须使用我学校的数据库

当我直接寻找9月份出生的人时,情况并不好。我需要一个查询,它给出的结果与我不知道9月是名称最长的月份时相同

我知道这是个愚蠢的问题,但这是为了学校

对不起,如果我的英语有时不好。我是荷兰人

希望你能帮助我:

到目前为止我已经知道了,但我不知道如何进一步

SELECT voornaam, tussenvoegsels, achternaam
, nvl(to_char(geb_datum, 'month'), 'onbekend')
FROM studenten
试试这个:

选择voornaam、tussenvoegsels、achternaam、geb_基准 来自studenten 在何处计费数据“月”= 选择以“月”为基准计费 来自studenten 其中LENto_收费数据为“月”= 选择MAXlento\u chargeb\u数据“月” 来自MyTableName

它可能仍然有一些小错误,但我这里没有任何db来测试它


小建议:翻译你问题中的列名。不是所有的人都像我一样是比利时人,所以他们都能理解列名

如前所述,这个问题实际上要求您确定哪个月份的名称最长。这可以通过多种方式实现,但它们都要求您能够获得MonthName列中值的长度,并且在不同的数据库产品中,实现这一点的函数是不同的。我猜您使用的是来自NVL的Oracle,Oracle使用的是长度

Oracle还使用特定于产品的语法来获取顶行

因此,为了获得最长名称的月份,您可以这样做我为使用英语工作而道歉:

 SELECT MonthName FROM Months ORDER BY LENGTH(MonthName) DESC WHERE RowNum = 1
您可以将其合并到大型SELECT语句中:

 SELECT Name FROM Students WHERE MonthName =
    (SELECT MonthName FROM Months ORDER BY LENGTH(MonthName) DESC WHERE RowNum = 1)
这假设

您有一个单独的月份表要检查。 MonthName是一个正确表达的Oracle函数,用于从出生日期提取月份。 如果没有月份表,则必须执行以下操作:

 SELECT Name FROM Students WHERE MonthName =
    (SELECT MonthName FROM Students ORDER BY LENGTH(MonthName) DESC WHERE RowNum = 1)

选中此项只需将group by添加到“CHARGEBU”DATAM“MOUNT”,因为此答案可能涉及一个函数来确定字符串值的长度,并且由于这些函数在不同的数据库产品中是不同的,您能用您正在使用的特定SQL数据库产品标记您的问题吗?这是一个很好的起点