2008-09-23 2 views
0

SQL 뷰에서 REPLACE를 사용하여 속성 번호에서 공백을 제거했습니다. 이 기능은 REPLACE (pin, '', '')와 같이 설정됩니다. 녹색 화면에서 쿼리가 잘 보였다. 다른 것에서 우리는 필드에있는 문자의 16 진수 값을 얻습니다. 인코딩 작업이라고 확신하지만 어떻게 수정합니까?이상한 SQL 출력 REPLACE

CREATE VIEW RLIC2GIS AS SELECT REPLACE(RCAPIN, ' ', '') AS 
RCAPIN13 , RLICNO, RONAME, ROADR1, ROADR2, ROCITY, ROSTAT, ROZIP1, 
ROZIP2, RGRID, RRADR1, RRADR2, RANAME, RAADR1, RAADR2, RACITY,  
RASTAT, RAZIP1, RAZIP2, REGRES, RPENDI, RBLDGT, ROWNOC, RRCODE,  
RROOMS, RUNITS, RTUNIT, RPAID, RAMTPD, RMDYPD, RRFUSE, RNUMCP,  
RDATCP, RINSP, RCAUKY, RCAPIN, RAMTYR, RYREXP, RDELET, RVARIA,  
RMDYIN, RDTLKI, ROPHN1, ROPHN2, ROCOM1, ROCOM2, RAPHN1, RAPHN2,  
RACOM1, RACOM2, RNOTES FROM RLIC2 

UPDATE : 여기

내가보기를 만드는 데 사용되는 문이다 나는 아래의 대답을 기록했다.

답변

2

우리는 우리가 원하는 결과를 얻기 위해 concat과 substring을 사용하는 것을 끝내었다.

CREATE VIEW RLIC2GIS AS         
SELECT CONCAT(SUBSTR(RCAPIN,1,3),CONCAT(SUBSTR(RCAPIN,5,2),  
CONCAT(SUBSTR(RCAPIN,8,2), CONCAT(SUBSTR(RCAPIN,11,3),   
SUBSTR(RCAPIN, 15,3))))) AS CAPIN13, RLICNO, RONAME, ROADR1,  
ROADR2, ROCITY, ROSTAT, ROZIP1, ROZIP2, RGRID, RRADR1, RRADR2, 
RANAME, RAADR1, RAADR2, RACITY, RASTAT, RAZIP1, RAZIP2, REGRES, 
RPENDI, RBLDGT, ROWNOC, RRCODE, RROOMS, RUNITS, RTUNIT, RPAID, 
RAMTPD, RMDYPD, RRFUSE, RNUMCP, RDATCP, RINSP, RCAUKY, RCAPIN, 
RAMTYR, RYREXP, RDELET, RVARIA, RMDYIN, RDTLKI, ROPHN1, ROPHN2, 
ROCOM1, ROCOM2, RAPHN1, RAPHN2, RACOM1, RACOM2, RNOTES FROM RLIC2 
0

빈 문자열 대신 NULL을 사용해보십시오. 즉, REPLACE (RCAPIN, '', NULL)

+0

NULL을 사용하지 않습니다. –

+0

어떤 DB를 사용하고 있습니까? –

1

여기의 문제는 그 필드의 빈 문자가 실제로 다른 인쇄 할 수없는 문자라는 것일 수 있습니다.

select replace(RCAPIN,chr(9)) 
FROM YOUR-TABLE 
:

select ascii(substr(RCAPIN,4,1)) 
FROM YOUR-TABLE 

그런 다음 당신이 대신 빈 공간의 문자 대체를 사용할 수있을 것입니다 :

당신은 ASCII 문자가 4 번째 위치에있는 것을 확인하기 위해 다음과 같은 SQL을 사용할 수 있습니다