表 man
列 room ,name ,rm201  张三    201
202  李四   
203  王五   只有第一行 room  和 rm 一样  ,现在要求得到结果 201(OK)  张三    
202          李四   
203          王五   请教这个简单sql写法 谢谢!

解决方案 »

  1.   

    select case when room = isnull(rm,'') then room + '(OK)' else room 'room',name from t
      

  2.   

    SELECT CASE WHEN room=rm THEN room+'(OK)'ELSE room END room
    ,name
    FROM man
      

  3.   

    回楼上的 我是sql2000 
    SELECT CASE WHEN room=rm THEN room+'(OK)'ELSE room END room
        ,name FROM man
     提示
    服务器: 消息 303,级别 16,状态 1,行 1
    表 'man' 是外联接子句的内部成员。如果该表同时也包含在常规联接子句中,那么这种情况是不允许的。
    回第二楼 
    select case when room = isnull(rm,'') then room + '(OK)' else room 'room',name from t 提示 
    服务器: 消息 170,级别 15,状态 1,行 1
    第 1 行: 'room' 附近有语法错误。
    我用的是sql2000 !!!
      

  4.   

    像这样的也不报错嘛
    select case when room = isnull(rm,'') then room + '(OK)' else room end 'room',name from name 
      

  5.   

    不好意思 其实我用了视图 真实的表是 
    表 man
    列 room ,name ,rm201  张三    
    202  李四   
    203  王五   表 yd
    列 room ,name 201  张三    
     
    yd只有第一行 room  和 man 表一样(也就是只要yd 表中出先的 room 和 man 表中出现的 room一样 )  ,现在要求得到结果 201(OK)  张三    
    202          李四   
    203          王五   请教这个简单sql写法 谢谢!
      

  6.   

    SELECT CASE WHEN room=rm THEN room+'(OK)'ELSE room END room
    ,name
    FROM man视图应该也可以吧
    我试了 SQL2000也没有问题 ,是你的视图写的不对吧