SQL - 规范化从Select语句/存储过程返回的数据

时间:2017-11-29 18:39:05

标签: sql-server tsql neural-network normalization

我正在建立一个神经网络来进行反向传播/数据分析。

我正在努力规范化我的输入数据以用于培训目的。

我的一个数据集包含一个类型标识符,目前有8种类型(这可能会随时更改)。

在我的select语句中,我想要一个条件,如果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 个答案:

答案 0 :(得分: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