我与它的结果下面的查询:将行转换为SQL Server中的常量列?
SELECT * FROM dbo.DeviceView AS dv
WHERE DeviceId = 5
结果:
Id Name AttachId ColorId Date
--- ------- ---------- ------- -------
5 Apple iPhone 5s A1533 NULL 1 2013-09-10 00:00:00.000
5 Apple iPhone 5s A1533 NULL 8 2013-09-10 00:00:00.000
5 Apple iPhone 5s A1533 NULL 19 2013-09-10 00:00:00.000
ColorId是不同势值之内,它可以多于或少于3个值
我想ColorId转换为3列,如ColorId1
中的第一个值和ColorId2
中的第二个值以及ColorId3
中的第三个值。
如:
Id Name AttachId ColorId1 ColorId2 ColorId3 Date
--- ------- ---------- ---------- ---------- ---------- -------
5 Apple iPhone 5s A1533 NULL 1 8 19 2013-09-10 00:00:00.000
我怎样才能将其转换为以下?
编辑:
除了ColorId
所有其他领域都是一样的。
首先,所有其他列依赖于Id吗?即,你可以在第二行有Name ='SamSung Galaxy 4'吗?或不? 'AttachId'和'Date'是否一样? –
如果这些列依赖于Id,那么你的数据库有规范化问题,你应该首先解决这个问题 –
@CharlesBretana请参阅文章的编辑部分。 –