2017-09-21 28 views
-1

私のテーブルには2つの列があります。私は1つを分割し、このテーブルの別の列に分割された値の最初の部分を入れる必要があります。SQLは文字列を分割して別の列に挿入します

私がしている: USER =>ログイン: 'MYDOMAIN/userNameに' =>ドメイン: ''

を私が必要とする: USER =>ログイン: 'ユーザー名' =>ドメイン:「MYDOMAINを'

これを行うためにRegexを使うことができるのか分かれているのか、それともsubstrを使うのか分かりません。

+1

「/」の位置を見つけるために、CHARINDEXを使用を返す:あなたのテーブルへの更新は、次のようになります列を分割するサブストリング – GuidoG

+2

実際のデータが何であるかは不明です。 –

答えて

1

これは、文字列関数で簡単に行うことができます。ここで一つのアプローチはLEFTCHARINDEXと、次のとおりです。

SELECT LEFT('myDomain/userName',CHARINDEX('/','myDomain/userName')-1) 

ちょうどあなたの列名を文字列に置き換えます。

UPDATE table 
SET Domain = SELECT LEFT(Login,CHARINDEX('/',Login)-1) 
+0

'Login'カラム –

+0

@RuslanKも変更する必要があるようです。はい、私はちょうどこれを「ログインとドメインを分離する」という意味にしています。「分割して、このテーブルの別の列に分割された値の最初の部分を入れる必要があります。 –

0

文字列関数を持つ別のアプローチは、この

declare @user varchar(50) = 'myDomain/userName' 

select substring(@user, charindex('/', @user) + 1, len(@user)) as username, 
     substring(@user, 0, charindex('/', @user)) as domain 

で、これは

username domain 
-------- ------ 
userName myDomain  
関連する問題