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

新手上路,请多包涵

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

 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:参数数量无效

我犯了什么错误,我应该怎么做才能修复它。

原文由 user6536526 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答
> SELECT CONCAT(Name,"(",SUBSTR(Occupation,1,1),")") FROM OCCUPATIONS;
>
> ```

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

其次, `CONCAT` 接受两个参数。

您可以嵌套一堆连接,但使用连接操作更容易和更清洁 `||` :

SELECT Name || ‘(’ || SUBSTR(Occupation,1,1) || ‘)’ FROM OCCUPATIONS;

”`

原文由 Gurwinder Singh 发布,翻译遵循 CC BY-SA 3.0 许可协议

你可以试试这个

select CONCAT(CONCAT(FIRST_NAME,' '),LAST_NAME) from employees;

通过使用这个,你必须给嵌套的 CONCAT 函数的数量等于参数的数量

结果

CONCAT(CONCAT(FIRST_NAME,''),LAST_NAME)

  • 尼娜·科查尔
  • 史蒂文·金
  • 亚历山大·汉诺德

原文由 SKP_144 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进