私は削除したいと思う先頭と末尾の両方の文字を持つテーブルにフィールドを持っています。MSSQLでLTRIMとRTIMとREPLACE関数を組み合わせる
テーブル(部分的に示す結果)この結果を生成dbo.inventory
からカテゴリ としてこの声明
SELECTフルネーム:
- 部品 - ベルト:Z .360J8
- 部品 - ベルト:Z.360J14 の
- 部品 - ベルト:Z.36355-123
- 部品 - プラスチック&フレーム:Z.103196-001
- 部品 - 電気ケーブル/コード:Z.P037153674
私が削除したいです「部品を - 」を削除しますダッシュの前に、すべてがコロンを末尾に「:」ので、私は唯一のカテゴリに出て、このようなテーブルを取得することができます。
- ベルト
- ベルト
- ベルト
- プラスチック&フレーム
- 電気ケーブル/コード
私はこれを試してみましたが、成功した前の削除した「部品を - 」が、成功したコロンの後のすべてを削除すると声明を組み合わせました「:」
SELECT LTRIM(RTRIM(REPLACE(フルネーム、 '部品 - '、 '')))dbo.inventory 012からカテゴリ AS
- ベルト::Z.360J8
- ベルト:Z.360J14
- ベルト:Z.36355-123
- プラスチック&フレーム:Z.103196-001 は、この結果を生成します
- 電気ケーブル/コード:あなたのためのZ.P037153674
おかげで、彼lp!
文は、このエラーが発生し、ご返信いただきありがとうございます:LEFTまたはSUBSTRING関数に渡さ 無効な長さのパラメータを。 "-1"を削除すると、ステートメントはエラーなく実行されますが、コロンは含まれます。 - ベルト:: - ベルト: - プラスチック・フレーム:ベルト - カテゴリー AS - :( ''、フルネーム))、 '部' '' LEFT(フルネーム、CHARINDEXを() SELECTは、REPLACE - 電気ケーブル/コード: –
コロンが付いていない行があれば、そのエラーが表示されます(事実上位置= -1)。 -1を削除すると、エラーを回避できますが、コロンのない行には空文字列が返される可能性があります。これらの行を見つけてサンプルを投稿すれば、それをどのように処理したいのか、それに応じてコードを適合させることができます。 SELECT REPLACE(REPLACE(置換)(フルネーム、CHARINDEX( ':'、フルネーム))、 'パーツ - '、 '')、 ':'、 '') –
私はエラーではない回避策として動作する可能性があります。結果を達成するために2つの置き換えステートメントを組み合わせ、あなたは私にソリューションに感謝しましたありがとう。 REPLACE(置換(LEFT(FullName、CHARINDEX( ':'、FullName))、 'Parts - '、 '')、 ':'、 '') –