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

SQL - Normalizing Data returned from Select Statement / Stored Procedure

我正在构建一个神经网络来做一些 back-propagation/data 分析。

我正在为训练目的对我的输入数据进行标准化。

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

在我的select语句中,我想有一个条件,如果TypeId = 1,我实际上想要return 00000001。如果TypeId = 2,我想return 00000011,然后重复。数字的长度将代表类型的数量。个的数量代表 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
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