使用单行函数拼接SQL语句报错,请求修正以获取目标结果
修正后的SQL语句及问题说明
原语句的错误点:
- 多数主流数据库的字符串拼接单行函数是
CONCAT,而非concatenate - 字符串片段之间缺少空格,会导致拼接后文本连在一起(比如出现
joshis their name这类错误格式) - 薪资字段
sal的拼接语法错误,没有和$符号、前后字符串正确结合 - 语句结尾误用冒号
:,SQL语句的结束符应为分号;
适配多数数据库(MySQL、PostgreSQL、SQL Server等)的修正语句:
SELECT CONCAT(LOWER(ename), ' is their name and they earn $', sal, '.') AS chart FROM emp;
针对Oracle数据库的修正语句(Oracle的CONCAT仅支持两个参数,需嵌套使用):
SELECT CONCAT(CONCAT(CONCAT(LOWER(ename), ' is their name and they earn $'), sal), '.') AS chart FROM emp;
以上语句执行后,会输出符合要求的格式:josh is their name and they earn $x.
内容的提问来源于stack exchange,提问作者Brandon Mac Mdlalose
相关产品推荐
相关产品推荐

