【发布时间】:2016-08-31 17:26:22
【问题描述】:
如何在 oracle concat 函数中执行大小写? 我想根据数字连接数字和字母。即,如果数字大于 1,则我必须附加 s,否则不附加。 我尝试了以下查询,但它不起作用。
Select concat(count(*) , if count(*) > 1 then 's' else '')
from tablename
group by columnname;
【问题讨论】:
如何在 oracle concat 函数中执行大小写? 我想根据数字连接数字和字母。即,如果数字大于 1,则我必须附加 s,否则不附加。 我尝试了以下查询,但它不起作用。
Select concat(count(*) , if count(*) > 1 then 's' else '')
from tablename
group by columnname;
【问题讨论】:
在Oracle 中最好使用|| 进行连接,没有if 但有case 表达式。我将使用|| 展示解决方案,因为它是最佳实践,但如果您必须使用concat,您也可以这样做。此外,Oracle 会为您将数字转换为 VARCHAR2,但最好明确地编写您的转换。
select to_char(count(*)) || case when count(*) > 1 then 's' end from ....
注意 - case 的默认值是 ''(与 Oracle 中的 NULL 相同),所以我不需要多写。
【讨论】:
if。你写了if,我写了when。你现在看到了吗?如果没有,只需复制和粘贴,以免抄写错误。