表结构和数据如下: 
ID  Name1  Name2 
1 N1  NULL 
2    N2      NULL 
3    NULL    N3 
4    N4      NULL 我想最终显示的时候仍然是 
1  N1 
2  N2 
3  N3 
4  N4 
请问这样的SQL语句该如何写?

解决方案 »

  1.   

    select id,isnull(name1,name2) from tb
      

  2.   

    SELECT
        ID,
        ISNULL(Name1,Name2) AS Name
    FROM tb
      

  3.   

    --不是问过?现在问题是?
    if object_id('tb')is not null drop table tb
    go
    create table tb(ID int,  Name1 varchar(10),  Name2 varchar(10)) 
    insert tb select 1, 'N1',  NULL 
    insert tb select 2,    'N2' ,     NULL 
    insert tb select 3,    NULL  ,  'N3' 
    insert tb select 4,    'N4'   ,   NULL 
    select id,isnull(name1,name2)[name] from tb
    /*id          name
    ----------- ----------
    1           N1
    2           N2
    3           N3
    4           N4*/
      

  4.   


    SQL codeif object_id('tempdb..#')is not null drop table #
    go
    create table #(ID int,  Name1 varchar(10),  Name2 varchar(10)) 
    insert # select 1 ,'N1'  ,NULL 
    insert # select 2 ,   'N2'  ,    NULL 
    insert # select 3 ,   NULL ,   'N3' 
    insert # select 4,    'N4',      NULL 
    select id,[name] from (
    select id,name1 [Name] from # 
    union all 
    select id,name2 from #)T
    where [name]is not null
    /*id          name
    ----------- ----------
    1           N1
    2           N2
    4           N4
    3           N3*/
      

  5.   

    select id,isnull(name1,name2)[name] from tb
      

  6.   

    SELECT ID,CASE WHEN NAME1 IS NULL THEN NAME2 ELSE NAME1 END AS [NAME] FROM TB
      

  7.   

    select id,isnull(name1,name2) from tb