2010-12-10 12 views
1

「 - 」文字の後に、説明列からテキストを削除しようとしています。私は右()関数を使用する必要がありますが、すべてのレコードをループし、説明列のすべてのレコードを変更する構文はどのように見えるだろう知っていますか?列の特定のポイントから文字を削除するSQL Server Right()関数

例...

BEFORE:

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 Serverでこれを試してみてください。

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

OUTPUT:

ここ
-------------------------------------------------- 
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) 

私は、実際のデータを変更する末尾のスペース

がない表示するには|文字を使用しました使用:

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

私は更新ステートメントから "-1"を外して動作しました!ありがとう!!! – Spidermain50

0

第一列の内容は、あなたが最後の列から、あなたはこれが1列である

00007 99 Saxa-Cotburg-Gotha - 00007 
関連する問題