2010-12-10 6 views
1

"-"문자 다음에 내 설명 열에서 텍스트를 제거하려고합니다. 나는 Right() 함수를 사용해야 만한다는 것을 알았지 만 구문에 따라 모든 레코드를 반복하고 Description 열의 모든 레코드를 변경하는 것처럼 보일까요?열의 특정 지점에서 문자를 제거하는 SQL Server Right() 함수

예 ...

하기 전에 :

0002 55 Actor Hill - 0002 
0004 57 Adair - 0004 
0005 74 Adams - 0005 

AFTER :

0002 55 Actor Hill 
0004 57 Adair 
0005 74 Adams 
+0

같은 값에 대한 걱정을하지 않아도

UPDATE Mytable SET StringField3 = REPLACE(StringField3, ' - ' + NumberLikeField1, '') 

이 방법으로 제거 할 것이라고 가정 또는 3 열? – gbn

답변

3

SQL 서버에서 이것을 시도 :

DECLARE @String varchar(50) 
SET @String='0002 55 Actor Hill - 0002' 
SELECT LEFT(@String,CHARINDEX(' - ',@String)-1) 

출력 :

여기
-------------------------------------------------- 
0002 55 Actor Hill 

(1 row(s) affected) 

테이블을 사용하는 예이다

DECLARE @YourTable table (RowValue varchar(50)) 
INSERT @YourTable VALUES ('0002 55 Actor Hill - 0002') 
INSERT @YourTable VALUES ('0004 57 Adair - 0004') 
INSERT @YourTable VALUES ('0005 74 Adams - 0005') 

SELECT 
    LEFT(RowValue,CHARINDEX(' - ',RowValue)-1), '|'+LEFT(RowValue,CHARINDEX(' - ',RowValue)-1)+'|' 
    FROM @YourTable 

OUTPUT :

-------------------- --------------------- 
0002 55 Actor Hill |0002 55 Actor Hill| 
0004 57 Adair  |0004 57 Adair| 
0005 74 Adams  |0005 74 Adams| 

(3 row(s) affected) 

I 실제 데이터를 변경하는 후행 공백

이없는 표시하도록 |자를 사용 사용 :

UPDATE @YourTable 
    SET RowValue=LEFT(RowValue,CHARINDEX(' - ',RowValue)-1) 
+0

나는 업데이트 문장에서 "-1"을 없앴다. 감사!!! – Spidermain50

0

1 칼럼의 내용이 마지막 열에서, 당신이 하나의 열입니다

00007 99 Saxa-Cotburg-Gotha - 00007 
관련 문제