2017-11-29 31 views
0

私はいくつかのバックプロパゲーション/データ解析を行うためにニューラルネットワークを構築しています。SQL - Selectステートメント/ストアドプロシージャから返されたデータの正規化

私は訓練のために入力データを正規化しています。

私のデータセットにはタイプ識別子が含まれていますが、現在は8種類あります(これはいつでも変更できます)。

TypeId = 1の場合、実際には00000001を返すことを条件としたいと思います.TypeId = 2の場合、00000011を返して繰り返します。数値の長さは型の数を表します。 1の数はTypeIdを表します。

これにアプローチする方法の提案はありますか?私はタイプの数が変わるかもしれないので、私が提供したものよりも少し卑劣なものを好むでしょう。

SELECT TypeId = 
     CASE TypeId 
     WHEN 1 THEN 00000001 
     WHEN 2 THEN 00000011 
     WHEN 3 THEN 00000111 
     WHEN 4 THEN 00001111 
     END, 
    Name 
FROM dbo.Types 

答えて

1
DECLARE @t TABLE (TypeId INT, Name VARCHAR(100)) 
INSERT INTO @t VALUES (1, 'Type1'), (2, 'Type2'), (3, 'Type3'), (10, 'Type10') 

SELECT REPLICATE('0', (SELECT MAX(TypeId) FROM @t) - TypeId) + REPLICATE('1', TypeId), Name 
FROM @t 

は与える:

0000000001 Type1 
0000000011 Type2 
0000000111 Type3 
1111111111 Type10 
関連する問題