有没有一种方法可以在不使用Initcap函数的情况下转换Oracle SQl中的首字母大写?
我有一个问题,我必须在SQL子句中使用DISTINCT关键字,而Initcap函数不起作用。
这是我的SQL示例:
select distinct p.nr, initcap(p.firstname), initcap(p.lastname), ill.describtion
from patient p left join illness ill
on p.id = ill.id
where p.deleted = 0
order by p.lastname, p.firstname;
我收到此错误消息:ORA-01791:不是SELECTED表达式
最佳答案
SELECT DISTINCT
时,不能选择未选中的ORDER BY
列。改用列别名,例如:
select distinct p.nr, initcap(p.firstname) fname, initcap(p.lastname) lname, ill.describtion
from patient p left join illness ill
on p.id = ill.id
where p.deleted = 0
order by lname, fname