Weird-Ausgabe auf SQL REPLACE
-
02-07-2019 - |
Frage
Ich verwende in einer SQL-Ansicht REPLACE die Räume von einer Immobiliennummer zu entfernen. Die Funktion ist wie folgt REPLACE-Setup (PIN, '', ''). Auf dem Grün-Bildschirm sah die Abfrage in Ordnung. In etwas, was wir bekommen den Hex-Wert des Zeichens in dem Feld ein. Ich bin sicher, dass es eine Codierung Sache, aber wie kann ich das Problem beheben?
Hier ist die Aussage, die ich verwenden, um die Ansicht zu erstellen:
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:. Ich stellte die Antwort unter
Lösung
Am Ende haben wir mit concat und String, um die Ergebnisse zu bekommen wir wollten.
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
Andere Tipps
Das Problem könnte sein, dass Sie denken, was in diesem Bereich die Leerstelle ist eigentlich ein anderes nicht druckbare Zeichen.
Sie können den folgenden SQL verwenden, um zu sehen, was ASCII-Zeichen an der 4. Position ist:
select ascii(substr(RCAPIN,4,1))
FROM YOUR-TABLE
Dann würden Sie in der Lage sein, für dieses Zeichen ein ersetzen zu verwenden, anstatt den leeren Raum:
select replace(RCAPIN,chr(9))
FROM YOUR-TABLE
Versuchen Sie NULL anstatt eine leere Zeichenkette verwenden. d.h. REPLACE (RCAPIN, '', NULL)