select * from (select * from table ) 不行,要加别名

解决方案 »

  1.   

    1、不行!
    2、
    我问你
    1 ,'aa' 编号   1 
    2 ,'aa' 标准  国标a
    3 ,'aa' 标准  国标b
    4 ,'aa' 外径  128
    你想得到什么结果???
    不写top 1,sqlserver怎么知道你要哪一个??是国标a还是国标b
    你也可以写 max(属性值) 或 min(属性值)
      

  2.   

    致 大力: 查询的结果是对的,我只是不明白(select top 1 属性值 from @ where 产品=a.产品 and 属性='编号') 编号 写了 top 1 那么第一行就是我要的结果吗?不会匹配错吗?
    (select  属性值 from @ where 产品=a.产品 and 属性='编号') 编号  是什么含义呢〉
      

  3.   

    select * from (select * from table ) 不行,要加别名  为什么?(select * from table ) 不就是一个表集吗?
      

  4.   

    还有:select 产品,
    (select top 1 属性值 from @ where 产品=a.产品 and 属性='编号') 编号, 其中,“三个产品“ 是一一对应的吗?我是说会不会出现产品1的属性对应产品2的属性?
      

  5.   

    1 ,'aa' 编号   1 
    2 ,'aa' 标准  国标a
    3 ,'aa' 标准  国标b
    4 ,'aa' 外径  128
    你想得到什么结果???2 ,'aa' 标准  国标a  <<=====如果不写top 1 sqlserver怎么知道你要哪一个??
    3 ,'aa' 标准  国标b <<=======是国标a还是国标b????? 当然要写top 1要不就错了!
    ------------------------------------------------------------------------
    select  属性值 from @ where 
    产品=a.产品        <<<=====你说为什么不回匹配错就是应为在这里写了 
    and 属性='编号'    <<<=====产品等于外面的产品 属性等于编号
    ) 编号  
      

  6.   

    更正
    :还有:select  产品,  
    (select  top  1  属性值  from  @  where  产品=a.产品  and  属性='编号')  编号,  其中,“三个产品“  是一一对应的吗?我是说会不会出现产品1对应产品2的属性
      

  7.   

    select * from (select * from table ) <<<====它没有临时表名,你要引用它的结果该怎么写呢??如列名:
    select tem.a from (select * from table ) temselect ???.a from (select * from table )
      

  8.   

    还有:select  产品,  
    (select  top  1  属性值  from  @  where  产品=a.产品  and  属性='编号')  编号,  其中,“三个产品“  是一一对应的吗?我是说会不会出现产品1对应产品2的属性where  产品=a.产品  <<<====这里不是写了他的产品对应外面的产品吗?当然不会错!