如何一起使用substring和concat操作

时间:2017-11-10 11:01:50

标签: sql oracle

我正在尝试运行一个查询,但它给出了错误表达式的连接错误。我正在构建一个插入查询,其中通过连接两列并从第一列获取第一个字母和从第二列获取整个值,从另一个表插入一个columne值。 继承了我的疑问。

SQL> INSERT INTO MSGG_USER (USERNAME)
SELECT substr (GIVEN_NAME, 1,1)GIVEN_NAME, || '' || SURNAME
FROM MSGG_PEOPLE;

1 个答案:

答案 0 :(得分:2)

您不需要第二次提及GIVEN_NAME,只是直接连接SUBSTR()的电话:

INSERT INTO MSGG_USER (USERNAME)
SELECT SUBSTR(GIVEN_NAME, 1, 1) || SURNAME;

在我的脑海中,看起来好像你可能试图用GIVEN_NAME对子串调用进行别名。在任何情况下,您都不需要在select语句中使用任何别名,因为列直接进入插入操作。

修改

如果要以全小写形式插入第一个姓氏和名字,可以尝试在LOWER中包含这些术语:

INSERT INTO MSGG_USER (USERNAME)
SELECT LOWER(SUBSTR(GIVEN_NAME, 1, 1)) || LOWER(SURNAME);