select xmbh, xmmc, cast(fbsj as varchar) FROM tdcrjbxx WHERE (iffb = '1') 
union all 
(select CAST(id AS VARCHAR(50)) xmbh,title xmmc,addtime fbsj FROM tdjy_news where cataid=13)上面的没有错但是这样就报错了select * from 
(
select xmbh, xmmc, cast(fbsj as varchar) FROM tdcrjbxx WHERE (iffb = '1') 
union all 
(select CAST(id AS VARCHAR(50)) xmbh,title xmmc,addtime fbsj FROM tdjy_news where cataid=13)
)WHY?

解决方案 »

  1.   

    cast(fbsj as varchar) 
    指定长度  cast(fbsj as varchar(50))
      

  2.   

    貌似
    select * from 
    (
    select xmbh, xmmc, cast(fbsj as varchar) FROM tdcrjbxx WHERE (iffb = '1') 
    union all 
    (select CAST(id AS VARCHAR(50)) xmbh,title xmmc,addtime fbsj FROM tdjy_news where cataid=13)
    )
    多个括号
      

  3.   

    select * from
    (
    select xmbh, xmmc, cast(fbsj as varchar) FROM tdcrjbxx WHERE (iffb = '1')
    union all
    (select CAST(id AS VARCHAR(50)) xmbh,title xmmc,addtime fbsj FROM tdjy_news where cataid=13)
    ) t--------------
    这样就可以了.
      

  4.   

    select * from
    (
    select xmbh, xmmc, cast(fbsj as varchar) as col1 FROM tdcrjbxx WHERE (iffb = '1')
    union all
    (select CAST(id AS VARCHAR(50)) xmbh,title xmmc,addtime fbsj FROM tdjy_news where cataid=13)
    ) t
      

  5.   

    cast(fbsj as varchar) fbsj
      

  6.   

    select t.xmbh, t.xmmc,t.col1  from
    (
    select xmbh, xmmc, cast(fbsj as varchar) as col1 FROM tdcrjbxx WHERE (iffb = '1')
    union all
    select CAST(id AS VARCHAR(50)) xmbh,title xmmc,addtime col1 FROM tdjy_news where cataid=13
    ) t
      

  7.   

    select a.* from 
    (
    select xmbh, xmmc, cast(fbsj as varchar) FROM tdcrjbxx WHERE (iffb = '1') 
    union all 
    (select CAST(id AS VARCHAR(50)) xmbh,title xmmc,addtime fbsj FROM tdjy_news where cataid=13)
    ) as a
    加个别名