programing

Oracle - 공백을 제거하는 방법?

mailnote 2023. 9. 13. 22:52
반응형

Oracle - 공백을 제거하는 방법?

나는 이 진술을 실행하고 있습니다.

select trim(a),trim(b) from table x;

트림() 문을 사용했음에도 불구하고 출력은 다음과 같습니다.

A                                                            B                              
___                                                          ____
kunjramansingh                                               smartdude

열 'a'와 'b'의 데이터 유형은 varchar2(255)입니다.

두 출력의 데이터 사이에 간격이 있습니다.공백 없이 데이터를 표시합니다. 다음과 같은 형식입니다.

A             B
___           ______ 
kunjramansinghsmartdude

이거 어떻게 해요?

SELECT  REGEXP_REPLACE('A B_ __ kunjramansingh smartdude', '\s*', '')
FROM    dual

---
AB___kunjramansinghsmartdude

업데이트:

문자열 연결:

SELECT  a || b
FROM    mytable

sqlplus에서 쿼리를 실행하는 것 같습니다.Sqlplus는 최대 문자열 크기(255)를 표시할 수 있도록 열 간격에 충분한 공간이 있어야 합니다.일반적으로 최대 문자열 크기(이 길이를 초과하는 줄은 여러 줄에 걸쳐 표시됨)를 줄이기 위해 열 형식 지정 옵션(쿼리 전에 실행: 열 A 형식 A20)을 사용하는 것이 해결책입니다.

내가 제대로 이해했다면, 이것이 당신이 원하는 것입니다.

select (trim(a) || trim(b))as combinedStrings from yourTable

선택 쿼리에서 'rpad'를 사용하고 크기를 지정할 수 있습니다...

select rpad(a , 20) , rpad(b, 20) from x ;

여기서 첫 번째 매개 변수는 열 이름이고 두 번째 매개 변수는 패딩할 크기입니다.

출력 포맷 문제로 들립니까?SQL Plus를 사용하는 경우 다음과 같이 COLUMN 명령을 사용합니다(각각 최대 20자의 표시 폭을 원하는 경우).

column a format a20
column b format a20
select a, b from mytable;

SQL Plus는 가능한 최대 값을 저장하도록 열 형식을 지정합니다. 이 경우 255자입니다.

출력에 실제로 추가 공간이 포함되어 있지 않은지 확인하려면 다음을 수행합니다.

SELECT
  '/' || TRIM(A) || '/' AS COLUMN_A
 ,'/' || TRIM(B) || '/' AS COLUMN_B
FROM
  MY_TABLE;

출력에서 '/' 문자가 분리되어 있으면 공백이 아니라 입력된 다른 공백 문자(예: 탭)임을 나타냅니다.이 경우 응용프로그램 어딘가에서 입력 유효성 검사 문제가 발생할 수 있습니다.

그러나 가장 가능성이 높은 시나리오는 '/'자가 실제로 문자열의 나머지 부분을 터치하여 공백이 실제로 잘려나감을 증명하는 것입니다.

만약 당신이 그것들을 함께 출력하고 싶다면, Quassnoi가 제시한 답이 있어야 합니다.

만약 그것이 순전히 전시 문제라면, 토니 앤드류스가 제시한 대답은 잘 될 것입니다.

REPLACE(REPLACE(a.CUST_ADDRESS1,CHR(10),' '),CHR(13),' ') as ADDRESS

예를 들어, 영숫자와 밑줄로만 구성된 값이 있는 열이 있습니다.우리는 이 칼럼을 모든 칸, 탭, 혹은 다른 백인 문자들에서 잘라내야 합니다.아래 예제를 통해 문제를 해결할 수 있습니다.잘린 것과 원래 것이 모두 비교를 위해 표시되고 있습니다.select '/'||REGEXP_REPLACE(my_column,'[^A-Z,^0-9,^_]','')||'/' my_column,'/'||my_column||'/' from my_table;

다음을 사용하여 출력에 공백이 없는지 확인합니다.

select first_name || ',' || last_name from table x;

산출량

존,스미스

제인,도

특정 열 값의 공백을 바꾸려면 다음 스크립트를 사용하여 작업을 수행할 수 있습니다.

UPDATE TableName TN
   SET TN.Column_Name   = TRIM (TN.Column_Name);

아래 명령어를 사용하여 Oracle의 공백을 제거했습니다.

테이블 이름은 - NG_CAP_SEND_입니다.INFO_MTR

열 이름은 - SENINFO_FROM입니다.

UPDATE NG_CAP_SENDER_INFO_MTR SET SENINFO_FROM = TRIM(SENINFO_FROM); 

스택 오버플로 LTRIM RTRIM에 대한 이미 응답

그리고 잘 작동합니다.

TAB 대체 쿼리 아래에서 실행LE_NAME & COLUMN_NAME 실제 테이블 및 컬럼 이름:

UPDATE TABLE_NAME SET COLUMN_NAME=TRIM(' ' from COLUMN_NAME);

언급URL : https://stackoverflow.com/questions/1195566/oracle-how-to-remove-white-spaces

반응형