可以这样SELECT 字段ID
,MAX(CASE WHEN 字段Key='Name' THEN 字段Value END)[字段Name]
,MAX(CASE WHEN 字段Key='Sex' THEN 字段Value END)[字段Sex]
,MAX(CASE WHEN 字段Key='Age' THEN 字段Value END)[字段Age]
FROM TB
GROUP BY 字段ID不过,如果不想写死,视图可无法处理动态的情况

解决方案 »

  1.   

    额,补充一点,字段Key那些字段都是已知的,不需要动态提取字段名,主要问题是如何能确保取出来的数据是准确的。
      

  2.   

    CREATE VIEW 视图名
    AS
    SELECT 字段ID
        ,MAX(CASE WHEN 字段Key='Name' THEN 字段Value END)[字段Name]
        ,MAX(CASE WHEN 字段Key='Sex' THEN 字段Value END)[字段Sex]
        ,MAX(CASE WHEN 字段Key='Age' THEN 字段Value END)[字段Age]
    FROM TB
    GROUP BY 字段ID那么你可以试下
      

  3.   

    我现在纠结在,直接select value from table where key = name into name  这样查出来,结构是对的,但是Andrew那行的age数据会变成marry的
      

  4.   

    select value from table where key = name into name 
    因为这边貌似没有这样的语法,所以不太明白你的意思另外,如果是行转列的写法 Andrew那行的AGE数据会变成NULL,不会变成marry的