2017-06-19 4 views
0

Kann ich Hilfe mit dieser SQL haben und eine Spaltenzeichenfolge teilen?Teilen einer Spalte mit Zeichenbegrenzer

Der Ausgang ich im Moment bekam

ID_Reference | Balance 
    203587   -902 
    203948   -111 

Der Ausgang ich es brauche:

ID_Reference | Balance 
    203587   902 
    203948   111 

Der Code ich benutze ist unten:

select AccountReference,CurrentBalance from SB_RentAccountBalances_V where CurrentBalance like '-%' 

Danke,

+0

Ich nehme an, Sie SQL Server verwenden, so habe ich einen Tag. –

Antwort

4

Sie würden se em will die abs() Funktion:

select AccountReference, abs(CurrentBalance) as Balance 
from SB_RentAccountBalances_V 
where CurrentBalance < 0; 

Zugegeben, ich gehe davon aus, dass eine Spalte namens CurrentBalance ist eigentlich eine Nummer und kein String.

Wenn es eine Zeichenfolge ist, können Sie die führende - entfernen. In SQL Server, verwenden Sie:

select AccountReference, stuff(CurrentBalance, 1, 1, '') as Balance 
from SB_RentAccountBalances_V 
where CurrentBalance like '-%'; 
+0

Perfekt, danke Gordon :) – sqldan

+0

Um hinzuzufügen, wenn es tatsächlich eine Zeichenfolge ist, konvertieren Sie es in einen numerischen Datentyp. @sqldan –

0

Ich hoffe, dass Sie diese aus

setzen wollen
select AccountReference,abs(CurrentBalance) CurrentBalance from 
SB_RentAccountBalances_V where CurrentBalance like '-%' 
0

Sie müssen nur ersetzen - mit freien Raum für die gewünschte Ausgabe. Versuchen Sie den Code unten

select AccountReference, 
     replace(CurrentBalance,'-','') as 'CurrentBalance' 
from SB_RentAccountBalances_V where CurrentBalance like '-%' 
0
SELECT ID_Reference, 
     SUBSTRING(Balance,CHARINDEX('-',Balance)+1,Len(Balance))AS Balance 
FROM SB_RentAccountBalances_V 
WHERE CHARINDEX('-',Balance)>0 
+0

Vielen Dank für dieses Code-Snippet, das einige sofortige Hilfe bieten kann. Eine richtige Erklärung [würde erheblich verbessern] (// meta.stackexchange.com/q/114762) ihren pädagogischen Wert, indem sie * warum * dies eine gute Lösung für das Problem ist, und es für zukünftige Leser mit ähnlichen, nützlicher machen würde, aber nicht identisch, Fragen. Bitte [bearbeiten] Sie Ihre Antwort, um eine Erläuterung hinzuzufügen und geben Sie an, welche Einschränkungen und Annahmen gelten. –

Verwandte Themen