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