【发布时间】:2014-11-20 13:25:22
【问题描述】:
我正在使用 SQL Server。我有下表(MyTable):
ID (int)
value (varchar)
我有以下疑问:
select distinct value
from MyTable
输出是:
Value_1
Value_2
Value_3
...
...
...
Value_450
我想创建下表(当 value = 'value_1' then 1 else o...):
ID | Value_1 | Value_2 | Value_3 | Value_4 | .... | Value_450
1 | 0 | 1 | 0 | 0 | .... | 0
2 | 0 | 0 | 0 | 1 | .... | 0
3 | 1 | 0 | 0 | 0 | .... | 0
4 | 0 | 1 | 0 | 0 | .... | 0
5 | 0 | 0 | 0 | 0 | .... | 1
6 | 1 | 0 | 0 | 0 | .... | 0
7 | 0 | 0 | 0 | 1 | .... | 0
8 | 0 | 0 | 0 | 0 | .... | 1
如果value 的不同值很小,我会使用Case 语句进行查询。在这种我有这么多价值观的情况下,我该怎么办?有什么聪明的方法吗?
【问题讨论】:
-
您使用的是什么关系型数据库?
-
我正在使用 SQL Server
-
查找 PIVOT,但我会质疑拥有 450 列的有用性!
标签: sql sql-server tsql case distinct