0

プロジェクト名として1つの列があり、プロジェクト名のデータ

1.1.1 chapter1
1.1.2 chapter2

その単一の列を2つの列に分割したい

Major   Minor
1.1     .1 chapter1
1.1     .2 chapter2

プロジェクト名の列のデータ型は nvarchar です。SQL 2005 を使用しています。

何か助けはありますか?

4

2 に答える 2

2

このようなもの

declare @x nvarchar(500) = '1.1.1 chapter1'

select substring(@x,1,charindex('.',@x,1+charindex('.',@x))-1) as Major,
       substring(@x,charindex('.',@x,1+charindex('.',@x)),len(@x)-charindex('.',@x,1+charindex('.',@x))) as Minor

クエリで@xを置き換えます。

そしてそれのためのフィドル:http ://sqlfiddle.com/#!3 / d41d8 / 4424/0

で更新されました。前にあり、エラーの証拠

@x nvarchar(500)='1.1.1chapter1'を宣言します

select @x,
   case when charindex('.',@x,1+charindex('.',@x)) <> 0 then substring(@x,1,charindex('.',@x,1+charindex('.',@x))-1)
        else 'Cannot be parsed'
   end,
   case when charindex('.',@x,1+charindex('.',@x)) <> 0 then substring(@x,charindex('.',@x,1+charindex('.',@x)),len(@x)-charindex('.',@x,1+charindex('.',@x))+1)
        else 'Cannot be parsed'
   end

となし。前に

@x nvarchar(500)='1.1.1chapter1'を宣言します

select @x,
   case when charindex('.',@x,1+charindex('.',@x)) <> 0 then substring(@x,1,charindex('.',@x,1+charindex('.',@x))-1)
        else 'Cannot be parsed'
   end,
   case when charindex('.',@x,1+charindex('.',@x)) <> 0 then substring(@x,1+charindex('.',@x,1+charindex('.',@x)),len(@x)-charindex('.',@x,1+charindex('.',@x)))
        else 'Cannot be parsed'
   end

http://sqlfiddle.com/#!3/d41d8/4430/0

于 2012-09-15T07:42:00.540 に答える
0
select substring(ProjectName,1,charindex('.',ProjectName,charindex('.',@t)+1)) as Major
于 2012-09-15T07:55:11.013 に答える