SQLでの奇妙な出力の置換え


0

SQLビューでREPLACEを使用して、プロパティー番号からスペースを削除しています。この関数はこのREPLACE(pin、 ''、 '')のように設定されています。緑色の画面では、クエリが正常に見えました。他のものでは、フィールド内の文字の16進値を取得します。私はそれがエンコードのものだと確信していますが、どうすれば修正できますか?ここで

は、私はビューを作成するために使用される文は次のとおりです。

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

私たちが望む結果を得るために、連結および部分文字列を使用することになりました。

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を使用してください。つまり、置換(RCAPIN、 ''、NULL)

  0

NULLを使用しません。 23 9月. 082008-09-23 20:06:27

  0

あなたはどのDBを使用していますか? 23 9月. 082008-09-23 20:14:43


1

ここでの問題は何だと思いますが、そのフィールドに空白文字がある、実際にいくつかの他の印刷できない文字であることかもしれません。

あなたはASCII文字が第四の位置にあるかを確認するには、以下のSQLを使用することができます。

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

その後、あなたはその文字の代わりに空白のために置き換えるを使用することができるだろう:

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