2017-02-02 10 views
1

Ich habe eine Tabelle, wo die Spalte [Englisch] manchmal Daten enthält, die das Wort "an" enthält.Wie kann ich die ersten drei Zeichen einer Spalte entfernen, wenn sie das Wort "to" enthalten?

Wie kann ich das "zu" aus den Feldern in nur den Zeilen entfernen, die es haben. So dass zum Beispiel:

to eat 

eat 
+0

Sie nur, dass auf Werte tun wollen, die mit 'auf' oder alles starten, die 'to' in sich hat? Ihre Frage und Titelkonflikt. – Siyual

+0

Ich möchte nur Zeilen machen, in denen die Spalte mit "to" beginnt. Tut mir leid, ich war mit der Frage nicht sehr klar. –

Antwort

5

Ein Weg werden würde, ist Sachen zu verwenden:

SELECT CASE WHEN ColumnName LIKE 'to %' THEN 
      STUFF(ColumnName, 1, 3, '') 
     ELSE 
      ColumnName 
     END As ColumnName 
FROM TableName 

Eine weitere Option ist direkt mit len ​​zu verwenden:

SELECT CASE WHEN ColumnName LIKE 'to %' THEN 
      RIGHT(ColumnName, LEN(ColumnName) - 3) 
     ELSE 
      ColumnName 
     END As ColumnName 
FROM TableName 
+0

Es tut mir leid, dass ich das nicht erwähnt habe, aber ich möchte nur "zu" ändern, wenn es am Anfang des Textes in der Spalte erscheint. –

+1

Und das ist, was meine Antwort tut. –

+0

okay vielen Dank –

0
select case when CHARINDEX('to',column,0) = 0 then column 
     else replace(column,'to ', '') end as column --there is one space after 'to ' 

FROM TABLE 
WHERE --specify which rows here 
+0

Wenn der Wert der Spalte 'zu mir und zu dir' ist, würde das 'ich und du' zurückgeben ... –

+0

@ZoharPeled, richtig, ich weiß nicht, was genau der Fall ist Beispiel ist ein bisschen vage .. – LONG

+0

Es tut mir leid, dass ich dies nicht erwähnt habe, aber ich möchte nur "zu" ändern, wenn es am Anfang des Textes in der Spalte erscheint. Der Fall wird immer ein Kleinbuchstabe t sein –

1

Ich glaube, Sie suchen etwas wie folgt aus:

UPDATE TableName 
SET ColumnName = SUBSTRING(ColumnName,4,len(ColumnName)) 
WHERE ColumnName LIKE 'to %'; 

Before and After image

Verwandte Themen