반응형
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
반응형
'source' 카테고리의 다른 글
Access Database의 모든 테이블을 Excel로 내보내는 방법 - 각 테이블에 대한 시트 (0) | 2023.10.16 |
---|---|
MySQL의 개체 배열을 사용하여 JSON 열 쿼리 열 (0) | 2023.10.16 |
공유 라이브러리를 정적 라이브러리로 변환하시겠습니까? (0) | 2023.10.16 |
ChildrenOutletContext에 대한 공급자 없음(injectionError) (0) | 2023.10.11 |
C++에서 임의의 영숫자 문자열을 만들려면 어떻게 해야 합니까? (0) | 2023.10.11 |