我正在建立一个神经网络来进行反向传播/数据分析。
我正在努力规范化我的输入数据以用于培训目的。
我的一个数据集包含一个类型标识符,目前有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
答案 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