create view vi_tong
as
select 部门,姓名, 
        case when 类型=1 then 出生年月 else '' end as 类型1出生年月,        
        case when 类型=2 then 出生年月 else '' end as 类型2出生年月
from tablename
go

解决方案 »

  1.   

    --创建测试环境 
    create table A
    (
      [部门] varchar(10),
      [姓名] varchar(10),
      [类型] int,
      [出生年月] int
    )insert A
    select 'A','李静',1,2 union
    select 'B','王冠',2,5 union
    select 'A','李静',1,7 
    --创建视图
    create view v
    as
    select [部门],[姓名],
           [类型1出生年月]=(case when [类型]=1 then convert(varchar,[出生年月]) else '' end),
           [类型2出生年月]=(case when [类型]=2 then convert(varchar,[出生年月]) else '' end)
    from A
    goselect * from v--删除测试环境
    drop table A
    drop view v--结果
    /*
    部门         姓名         类型1出生年月       类型2出生年月   
    ---------- ---------- ------------------------------ -------
    A          李静         2                   
    A          李静         7                  
    B          王冠                               5(所影响的行数为 3 行)
    */