gpt4 book ai didi

SQL:ORDER BY 使用特定列中的子字符串...可能吗?

转载 作者:行者123 更新时间:2023-12-04 09:37:01 33 4
gpt4 key购买 nike

我有一个数据库,其列是 npID、标题、URL 和问题。

以下是两年条目的示例:

npID               title               URL               issue
88 EMR Newsletter a.com 2010 Third_Quarter
89 EMR Newsletter b.com 2010 Second_Quarter
43 EMR Newsletter c.com 2010 First_Quarter
47 EMR Newsletter d.com 2009 Winter
45 EMR Newsletter e.com 2009 Summer
46 EMR Newsletter f.com 2009 Spring
44 EMR Newsletter g.com 2009 Fall

我想要做的是能够根据“问题”列中的子字符串对结果进行排序。然而,直到 2010 年,客户才使用季节作为标题,并在 2010 年开始使用季度。在“ORDER BY”中有没有办法我可以提供一个单词列表来排序是否/何时在“问题”值中的任何位置找到它们?

我希望最终结果是这样的:
npID               title               URL               issue
43 EMR Newsletter c.com 2010 First_Quarter
89 EMR Newsletter b.com 2010 Second_Quarter
88 EMR Newsletter a.com 2010 Third_Quarter
47 EMR Newsletter d.com 2009 Winter
45 EMR Newsletter e.com 2009 Summer
46 EMR Newsletter f.com 2009 Spring
44 EMR Newsletter g.com 2009 Fall

最佳答案

你可以放一个 CASE ORDER BY 中的声明来实现这一点。更好的方法是更改​​应用程序和表,以便在您有开发时间时将这些相关数据实际存储在它所属的列中。

ORDER BY
CAST(SUBSTRING(issue, 1, 4) AS INT) DESC, -- Year
CASE
WHEN issue LIKE '%First_Quarter' OR issue LIKE '%Winter' THEN 1
WHEN issue LIKE '%Second_Quarter' OR issue LIKE '%Spring' THEN 2
WHEN issue LIKE '%Third_Quarter' OR issue LIKE '%Summer' THEN 3
WHEN issue LIKE '%Fourth_Quarter' OR issue LIKE '%Fall' THEN 4
END

随心所欲地订购季节。您还可以通过调整 CASE 以特定方式对它们进行排序(Q1,然后是 Spring,然后是 Q2,等等)。陈述。

关于SQL:ORDER BY 使用特定列中的子字符串...可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8187828/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com