source

Concat 함수가 작동하지 않음 - 인수 개수가 잘못되었습니다.

factcode 2023. 10. 16. 22:06
반응형

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;

이런 식으로 오류를 던지고 있는 겁니다.

직업에서 CONCAT(이름, '(',SUBSTR(직업,1,1')) 선택 * 1행 오류: ORA-00909: 잘못된 인수 개수

제가 저지른 잘못은 무엇이고 어떻게 해야 고칠 수 있을까요?

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

첫째, 큰따옴표는"식별자를 둘러싸는 데 사용됩니다.인용구 하나를 사용합니다.'끈을 감다

둘째,CONCAT두 개의 파라미터를 받습니다.

컨캣을 여러 개 둥지로 만들 수 있지만 컨커넥션 작업을 사용하는 것이 더 쉽고 깨끗합니다.||:

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

연결할 때는 ||만 사용할 수 있습니다.

select c1  ||   c2 ||   c3 || c4   as  col from mytable

당신은 이것을 시도해도 좋습니다.

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

이를 사용하여 인수의 수와 동일한 중첩 CONCAT 함수의 수를 지정해야 합니다.

결과.

CONCAT(CONCAT(FIRST_NAME,''),LAST_NAME)
  • 니나코차르
  • 스티븐킹
  • 알렉산더 후놀드

이것이 제가 더 좋아하는 이유 중 하나입니다.replace()위에concat():

SELECT REPLACE(REPLACE('{Name} ({Occ})', '{Name}', Name'
                      ), '{Occ}', SUBSTR(Occupation, 1, 1)
              )

생성되는 문자열의 형식을 쉽게 볼 수 있고 쉽게 변경할 수 있습니다.또한.REPLACE()인수를 적절한 유형으로 변환합니다(오라클은 문자열 연결을 사용합니다).

언급URL : https://stackoverflow.com/questions/42611194/concat-function-is-not-working-invalid-number-of-arguments

반응형