select a from table1
得如下表
a
0
1
2
5我要想得到如下的表,怎么写SQL语句?
a  col
0  111
1  222
2  666
5  123即有关系如下:
当a列数据为0时,则col列数据为'111',其他都一样,因数据有限....

解决方案 »

  1.   


    select a,(case when a=0 then '111' else col) as col from table1
      

  2.   

    select a,(case when a=0 then '111' else col end) as col from table1
      

  3.   

    4楼和5楼可能理解我的意思,4楼和5楼能不能把他写完.数据库就有那几条记录,不要什么规律啊,就判断a列的数据,如果是0,就给col列填上'111',这样而已
      

  4.   

    ----------------------------------------------------------------------------------
    -- Author : htl258(Tony)
    -- Date   : 2010-05-07 17:50:04
    -- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
    --          Jul  9 2008 14:43:34 
    --          Copyright (c) 1988-2008 Microsoft Corporation
    --          Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
    -- Blog   : http://blog.csdn.net/htl258
    ------------------------------------------------------------------------------------> 生成测试数据表: [tb]
    IF OBJECT_ID('[tb]') IS NOT NULL
    DROP TABLE [tb]
    GO
    CREATE TABLE [tb] ([a] [int])
    INSERT INTO [tb]
    SELECT '0' UNION ALL
    SELECT '1' UNION ALL
    SELECT '2' UNION ALL
    SELECT '5'--SELECT * FROM [tb]-->SQL查询如下:
    select a,col=
    case a 
    when 0 then 111
    when 1 then 222
    when 2 then 666
    when 5 then 123
    else 0
    end
    from tb
    /*
    a           col
    ----------- -----------
    0           111
    1           222
    2           666
    5           123(4 行受影响)*/