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

6 sql oracle

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

Jane(A) 
Jenny(D) 
Julia(A)
Run Code Online (Sandbox Code Playgroud)

听到第一个是名字,括号中的值是他们职业的第一个字母.

到目前为止,我所做的是

SELECT CONCAT(Name,SUBSTR(Occupation,1,1)) FROM OCCUPATIONS;
Run Code Online (Sandbox Code Playgroud)

这样的输出值

JaneS 
JennyS 
JuliaD
Run Code Online (Sandbox Code Playgroud)

得到所需的格式我试过这个

SELECT CONCAT(Name,"(",SUBSTR(Occupation,1,1),")") FROM OCCUPATIONS;
Run Code Online (Sandbox Code Playgroud)

然后它会抛出这样的错误.

SELECT CONCAT(Name,'(',SUBSTR(Occupation,1,1),')')FROM OCCUPATIONS*ERROR at line 1:ORA-00909:无效的参数数量

我做错了什么,我应该怎么做才能解决它.

Gur*_*ngh 9

SELECT CONCAT(Name,"(",SUBSTR(Occupation,1,1),")") FROM OCCUPATIONS;
Run Code Online (Sandbox Code Playgroud)

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

第二,CONCAT接受两个参数.

你可以嵌套一堆concats,但使用连接操作更简单,更清晰||:

SELECT Name || '('  || SUBSTR(Occupation,1,1) || ')' FROM OCCUPATIONS;
Run Code Online (Sandbox Code Playgroud)

  • @NirLevy:[Oracle 数据库 SQL 语言参考](https://docs.oracle.com/database/122/SQLRF/CONCAT.htm#SQLRF00619) 说:`CONCAT(char1, char2)` (2认同)