녕녀기의 실험일지

[ Oracle ] CHR()로 문자 나타내기 본문

-- Data --/- SQL -

[ Oracle ] CHR()로 문자 나타내기

녕녀기 2023. 9. 15. 16:16

본문으로

안녕하세요. 녀기입니다.

 

데이콘도 마무리 됐고, 빅분기도 다음 주에 셤인데

 

공부하기 싫어서 SQL 만졌습니다...

 

(잘했다고 칭찬해줘요~~🤗)

 

연습 중에 안 되던 것이 있는데,

 

검색의 힘으로 해결했다는 사실~

 

그럼 가보시죠!!


CHR()

https://school.programmers.co.kr/learn/courses/30/lessons/164670#qna

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

https://babolsk.tistory.com/1037

 

[oracle]oracle 공백값 chr(49824)

oracle 공백값 chr(49824) 오라클 공백값이 기존 1byte의 chr(32) 말고 다른 문자가 있기에 포스팅함 chr(32)1bytetrim가능, replace 처리가 space로 만든 공백으로 가능 chr(49824)2bytetrim불가, replace 처리가 space로

babolsk.tistory.com

(첫 번째 링크는 문제구요.

 

두 번째 링크는 참고한 블로그입니다.)

 

아래는 제가 작성한 코드입니다.

-- 코드를 입력하세요
WITH OVER_THREE AS 
(
SELECT WRITER_ID, COUNT(WRITER_ID)
FROM USED_GOODS_BOARD
GROUP BY WRITER_ID
HAVING COUNT(WRITER_ID) >= 3
)

SELECT OT.WRITER_ID, UGU.NICKNAME, UGU.CITY||CHR(32)||UGU.STREET_ADDRESS1||CHR(32)||UGU.STREET_ADDRESS2 AS 전체주소
,SUBSTR(UGU.TLNO,1,3)||'-'||SUBSTR(UGU.TLNO,4,4)||'-'||SUBSTR(UGU.TLNO,-4,4) AS 전화번호
FROM OVER_THREE OT INNER JOIN USED_GOODS_USER UGU
ON OT.WRITER_ID = UGU.USER_ID
ORDER BY OT.WRITER_ID DESC;

SELECT 문에 CITYSTREET_ADDRESS 등으로 합쳐진 컬럼이 보이실 것입니다. 

 

중간에 공백을 넣었어야 했는데,

 

처음에는

UGU.CITY||' '||UGU.STREET_ADDRESS1||' '||UGU.STREET_ADDRESS2 AS 전체주소

저렇게 공백을 직접 입력해서 넣어주었습니다.

 

그런데 에러가 발생해가지고

 

어떻게 하지?

 

하다가 CHR()를 사용했습니다.

 

 

CHR()는 함수의 파라미터로 ASCII 코드 값을 받습니다. 

 

그러면 해당 ASCII 코드에 해당하는 글자를 반환합니다.

 

공백은 32여서 

 

CHR(32)를 넣었더니 해결이 됐습니다!!


근데 막상 다른 분들 하신 것 보니까 저처럼 ' ' 쓰신 분도 있더라구요?

 

(난 왜 안 됐지?

 

프로그래머스가 날 싫어하나😱)

 

어쨌든 해결만 됐으면 된거죠ㅋㅋㅋㅋ

 

저는 다시 공부의 늪으로 돌아가 보겠습니다.

 

뾰로롱이에요~~~

 

Comments