一尘不染

Concat函数不起作用-参数数量无效

sql

我有一个带有两列(名称,职业)的表。我想以这种格式输出值。

Jane(A) 
Jenny(D) 
Julia(A)

听到第一个是名称,方括号中的值是其职业的第一个字母。

到目前为止,我所做的是

SELECT CONCAT(Name,SUBSTR(Occupation,1,1)) FROM OCCUPATIONS;

这样的输出值

JaneS 
JennyS 
JuliaD

获得所需的格式,我尝试了这个

SELECT CONCAT(Name,"(",SUBSTR(Occupation,1,1),")") FROM OCCUPATIONS;

那么它就会抛出类似这样的错误。

SELECT CONCAT(Name,’(’,SUBSTR(Occupation,1,1),’)’)FROM OCCUPATIONS
*错误在第1行:ORA-00909:无效的参数数量

我犯了什么错误,应该怎么做才能解决。


阅读 173

收藏
2021-05-05

共1个答案

一尘不染

SELECT CONCAT(Name,"(",SUBSTR(Occupation,1,1),")") FROM OCCUPATIONS;

首先,双引号"用于包含标识符。使用单引号'将字符串包装起来。

其次,CONCAT接受两个参数。

您可以嵌套一堆concat,但是使用串联操作更容易,更干净||

SELECT Name || '('  || SUBSTR(Occupation,1,1) || ')' FROM OCCUPATIONS;
2021-05-05