2017-11-28 2 views
0

Ich habe eine Reihe von Daten, House Electricity - 1234, die ich in einer SQL-Datenbank gespeichert habe.SQL Kombination wo und Select

Ich versuche, die Zeichenfolge auf den vierstelligen Zahlencode am Ende zu beschränken, aber wenn die Daten in die Datenbank eingegeben werden, müssen sie zuerst die beschreibenden Begriffe haben.

Die Umgebung, in der ich arbeite, lässt mich laufen SQL Abfragen, jedoch gibt es einen Haken.

Es muss mit SELECT Nominal_Code FROM Housing WHERE

beginne ich nicht die Reihenfolge dieser ändern kann.

Ich habe versucht, danach ein RECHT ('House Electricity - 1234', 4) einzufügen, aber es scheint nichts zu tun.

Gibt es eine Lösung dafür?

Edit für Klarheit.

Die Säule wird Nominal_Code genannt

Die Tabelle nennt Gehäuse

Die Lösung muss mit SELECT Nominal_Code FROM Housing WHERE beginnen - wie die Software Ich benutze (Docuware) erfordert es, dass genaue Format zu beginnen.

Das Ziel ist House Electricity - 1234 bekommen sich für einen Kommentar zu lange mit 1234.

+1

Bitte lesen & handeln [MCVE ]. Was ist dein Beitrag? Wie genau sollte die Ausgabe aussehen? Welche genaue Abfrage hast du geschrieben? Welche Spalte hat solche Strings? Warum erwarten Sie, dass diese Reihe gepflückt wird? Das 'wo' gibt das. Die 'select'-Klausel sollte nach den' richtigen' '4'-Zeichen des Wertes welcher Spalte fragen? Wenn Sie diesen Wert in der Spalte 'Nominal_Code' haben wollen, brauchen Sie' Housing', um eine Spalte mit diesem Wert zu haben. Oder steht "Nominal_code" für Code, den Sie schreiben müssen? Bitte erklären Sie es deutlich. – philipxy

+0

Ändern Sie die von Ihnen verwendete Software. –

+0

Ich denke, ich habe es so geändert, wie du es gefragt hast. Gibt es noch etwas, was Sie brauchen würden? In Bezug auf die Änderung der Software, Wenn das eine Option wäre, würde ich, aber leider ist es nicht. Wenn es nicht möglich ist, muss ich in andere Lösungen in der Software schauen. –

Antwort

0

zu ersetzen ...

Scheint mir fein:

SELECT 'a123', RIGHT('a123',3); 
+------+-----------------+ 
| a123 | RIGHT('a123',3) | 
+------+-----------------+ 
| a123 | 123    | 
+------+-----------------+ 
+0

Dies ist ähnlich zu dem, was ich versucht habe, aber ich bekomme den Fehler, dass ein Boolean erwartet wird, weil das RECHTE nach dem WHERE kommen muss. –

+0

In diesem Fall, siehe Philipxys Kommentar oben. – Strawberry