0

最初の値を除いて昇順で並べられた次のテーブル ストランドがあります。

 Strand
 3.1.1
 3.1.1.1
 3.1.1.2
 3.1.2
 3.1.2.1
 3.1.2.2
 3.10       # this should have been at the top most
 3.2.1
 3.2.1.1
 ...
 ...
 3.20      #Similarly,this should have been above 3.2.1 and below 3.1.2.2

列は varchar にあり、3.10 を 3.1 に、3.20 を 3.2 に変換するとうまくいくと思います。つまり、これらの値に対してのみ varchar から decimal(1,1) に変換しますが、変換またはキャストする方法がわかりません列内の特定のフィールド...列全体をキャストしたくない..答えが得られない...

4

2 に答える 2

0

これを試して

select * from @t1
ORDER BY 
CASE WHEN strand like '%0%' then convert(varchar,CONVERT(float,strand)) ELSE strand END

ここに画像の説明を入力

于 2017-03-21T05:57:55.267 に答える