it-swarm.com.de

Wie kann ich in SQL die Funktionen LINKS und RECHTS verwenden, um die letzten 3 Zeichen abzurufen?

Ich habe ein Char(15) -Feld, in diesem Feld habe ich die folgenden Daten:

94342KMR
947JCP
7048MYC

Ich muss das aufschlüsseln, ich muss die letzten RECHTEN 3 Zeichen bekommen und ich muss das bekommen, was LINKS ist. Mein Problem ist, dass der Code auf der linken Seite nicht immer die gleiche Länge hat, wie Sie sehen können.

Wie kann ich das in SQL erreichen?

Vielen Dank

15
jorame
SELECT  RIGHT(RTRIM(column), 3),
        LEFT(column, LEN(column) - 3)
FROM    table

Verwenden Sie RIGHT w/RTRIM (um Komplikationen mit einer Spalte fester Länge zu vermeiden) und LEFT gekoppelt mit LEN (um nur das zu erfassen, was Sie benötigen). ausgenommen von den letzten 3 Zeichen).

wenn es jemals eine Situation gibt, in der die Länge <= 3 ist, müssen Sie wahrscheinlich eine CASE -Anweisung verwenden, damit der LEFT -Aufruf nicht gierig wird.

14
Brad Christie

Sie können RTRIM verwenden oder Ihren Wert in VARCHAR umwandeln:

SELECT RIGHT(RTRIM(Field),3), LEFT(Field,LEN(Field)-3)

Oder

SELECT RIGHT(CAST(Field AS VARCHAR(15)),3), LEFT(Field,LEN(Field)-3)
2
Lamak
select right(rtrim('94342KMR'),3)

Dadurch werden die letzten 3 richtigen Zeichenfolgen abgerufen.

select substring(rtrim('94342KMR'),1,len('94342KMR')-3)

Dadurch werden die verbleibenden Zeichen abgerufen.

1
user2127106

Hier eine Alternative mit SUBSTRING

SELECT
            SUBSTRING([Field], LEN([Field]) - 2, 3) [Right3],
            SUBSTRING([Field], 0, LEN([Field]) - 2) [TheRest]
    FROM 
            [Fields]

mit Geige

1
Jodrell