私のテーブルには2つの列があります。私は1つを分割し、このテーブルの別の列に分割された値の最初の部分を入れる必要があります。SQLは文字列を分割して別の列に挿入します
私がしている: USER =>ログイン: 'MYDOMAIN/userNameに' =>ドメイン: ''
を私が必要とする: USER =>ログイン: 'ユーザー名' =>ドメイン:「MYDOMAINを'
これを行うためにRegexを使うことができるのか分かれているのか、それともsubstrを使うのか分かりません。
私のテーブルには2つの列があります。私は1つを分割し、このテーブルの別の列に分割された値の最初の部分を入れる必要があります。SQLは文字列を分割して別の列に挿入します
私がしている: USER =>ログイン: 'MYDOMAIN/userNameに' =>ドメイン: ''
を私が必要とする: USER =>ログイン: 'ユーザー名' =>ドメイン:「MYDOMAINを'
これを行うためにRegexを使うことができるのか分かれているのか、それともsubstrを使うのか分かりません。
これは、文字列関数で簡単に行うことができます。ここで一つのアプローチはLEFT
とCHARINDEX
と、次のとおりです。
SELECT LEFT('myDomain/userName',CHARINDEX('/','myDomain/userName')-1)
ちょうどあなたの列名を文字列に置き換えます。
UPDATE table
SET Domain = SELECT LEFT(Login,CHARINDEX('/',Login)-1)
'Login'カラム –
@RuslanKも変更する必要があるようです。はい、私はちょうどこれを「ログインとドメインを分離する」という意味にしています。「分割して、このテーブルの別の列に分割された値の最初の部分を入れる必要があります。 –
文字列関数を持つ別のアプローチは、この
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
「/」の位置を見つけるために、CHARINDEXを使用を返す:あなたのテーブルへの更新は、次のようになります列を分割するサブストリング – GuidoG
実際のデータが何であるかは不明です。 –