在包含GROUPBY的SQL查询中,如何将月份从数字形式转换为字符串形式?

在包含GROUPBY的SQL查询中,如何将月份从数字形式转换为字符串形式?,sql,oracle,to-date,sql-date-functions,Sql,Oracle,To Date,Sql Date Functions,因此,我正在创建一个视图,它可以提取一组数据(一个字段上有一个总和聚合)。查询包含GROUPBY子句,当我在查询中进行如下月份转换时,我得到一个%invalid character%错误 SELECT Code, Name, Products, SUM(Costs) AS TOTAL, Year, to_char(to_date(PurchaseMonth),'DD-Mon-yyyy') AS MonthProductPurchased FROM ProductCatalog <BUNC

因此,我正在创建一个视图,它可以提取一组数据(一个字段上有一个总和聚合)。查询包含GROUPBY子句,当我在查询中进行如下月份转换时,我得到一个%invalid character%错误

SELECT Code, Name, Products, SUM(Costs) AS TOTAL, 
Year, to_char(to_date(PurchaseMonth),'DD-Mon-yyyy') AS MonthProductPurchased
FROM ProductCatalog
<BUNCH OF JOINS HERE>
WHERE ABC.Code=DEF.Code AND Products IS NOT null
GROUP BY Code, Name, Products, Year, MonthProductPurchased;
选择代码、名称、产品、总计(成本),
年,截止日期(购买月),'DD-Mon-yyyy')为购买月
来自产品目录
其中ABC.Code=DEF.Code AND Products不为空
按代码、名称、产品、年份、月份分组购买的产品;

例如,我想将月份字段中的“1”转换为“一月”,“2”转换为二月,依此类推

我明白了,您有一个名为
PurchaseMonth
的东西,它接受值1、2、3等等。您希望将这些值转换为月份名称。这个怎么样

to_char(to_date('2000-' || PurchaseMonth || '-01'), 'YYYY-MM-DD'), 'MONTH')

因此,在我的Group By子句中,我将包括PurchaseMonth,对吗?我遇到的问题是,我在SELECT语句中得到了黄色的曲线,提示说要在Group By子句中包括to char(to_char(to_date('2000-'| | | PurchaseMonth | | | | |'-01')、'yyyyyy-MM-DD')、'MONTH')。我尝试了别名,但它不接受。我应该在我的Group By子句中放入什么来消除错误?@user2425909。将整个表达式按放入
组中,或者仅将
PurchaseMonth
放入其中。它起作用了。它仍然显示了SQL Developer中的黄色曲线,但查询的工作方式与您所说的完全相同。谢谢,伙计。
to_char(to_date(PurchaseMonth,'MM'),'MONTH')