2

テーブルに19.5または7.14columnのようなテキスト (文字列) がありますが、 19または11だけでも同様です。

「。」の前のすべてのテキストを使用して、テキスト2列1に分割したい。「。」の後のすべてのテキストを含む1。.

のないエントリの場合文字列では、テーブルの 2 列目に00が必要です。の後のすべてのデータも長さは 2 文字でなければなりません (0 で埋められます)。

たとえば、 19.5は を与える必要がありますcolumn1: 19 column2: 5011はcolumn1: 11 column2: 00を与える必要があり ます 誰かが正しい tsql コードを手伝ってくれますか?

4

3 に答える 3

0
select cast(cast(number as float) as int) column1,
right(cast(number as numeric(9,2)), 2) column2
from
(VALUES ('19.5'),('7.14'),('19'),('11') ) t(number)
于 2013-05-06T09:04:08.090 に答える
0

これを試して、

Declare @InputList VARCHAR(8000), @Delimiter VARCHAR(8000);
Declare @1stvalue nvarchar(20), @2ndValue Int;

Set @InputList = '19.5';
Set @Delimiter = '.';

set @1stvalue = (select RTRIM(LTRIM(SUBSTRING(@InputList,1,CHARINDEX(@Delimiter,@InputList,0)-1))));

set @2ndValue = (Select RTRIM(LTRIM(SUBSTRING(@InputList,CHARINDEX(@Delimiter,@InputList,0)+LEN(@Delimiter),LEN(@InputList)))) )
set @2ndValue = (select case when @2ndValue < 10 then convert (varchar(10) ,convert (varchar(10),@2ndValue) + '0') else convert (varchar(10), @2ndValue) end);

SELECT @1stvalue AS Column1, @2ndValue AS Column2;

これを関数として使用できます..

于 2013-05-06T09:08:41.530 に答える