首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • sql语句? [已结贴,结贴人:yinliaobao]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-15 13:53:34 楼主
    我要的结果是当id相同的时候,他们的Detail只为A 的时候,资料就都显示出来
                当id相同的时候,他们的Detail为A或B的时候,资料就都显示出A来
                当id相同的时候,他们的Detail只为的时候,  资料就都显示出一行为B出来

    tb_aa
    id  Detail
    1    A
    1    A
    2    A
    2    A
    2    B
    3    B
    3    B
    得到的形式 为 :
    id  detail
    1  A
    1  A
    2  A
    2  A
    3  B
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-15 14:01:151楼 得分:7
    SQL code
    declare @tb_aa table([id] int,[Detail] nvarchar(1)) Insert @tb_aa select 1,N'A' union all select 1,N'A' union all select 2,N'A' union all select 2,N'B' union all select 3,N'B' union all select 3,N'B' SELECT * FROM @TB_AA WHERE DETAIL='A' UNION ALL SELECT DISTINCT A.* FROM @TB_AA A LEFT JOIN (SELECT ID FROM @TB_AA WHERE DETAIL='A' GROUP BY ID) AS T ON A.ID=T.ID WHERE T.ID IS NULL --结果 id Detail ----------- ------ 1 A 1 A 2 A 3 B (所影响的行数为 4 行)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-15 14:03:202楼 得分:7
    SQL code
    declare @tb_aa table([id] int,[Detail] nvarchar(1)) Insert @tb_aa select 1,N'A' union all select 1,N'A' union all select 2,N'A' union all select 2,N'A' union all select 2,N'B' union all select 3,N'B' union all select 3,N'B' SELECT * FROM @tb_aa WHERE [Detail] ='A' UNION ALL SELECT TOP 1 * FROM @tb_aa WHERE [Detail] ='B' AND ID NOT IN (SELECT ID FROM @tb_aa WHERE [Detail] ='A') /* id Detail ----------- ------ 1 A 1 A 2 A 2 A 3 B */
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-15 14:05:253楼 得分:6
    declare @tb_aa table([id] int,[Detail] nvarchar(1))
    Insert @tb_aa
    select 1,N'A' union all
    select 1,N'A' union all
    select 2,N'A' union all
    select 2,N'A' union all
    select 2,N'B' union all
    select 3,N'B' union all
    select 3,N'B'

    Select * from @tb_aa where Detail='A' union all
    select distinct * from @tb_aa a where
      Detail <>'A' and not exists(select 1 from @tb_aa where ID=a.ID and [Detail]='A')
    ------------------

    (所影响的行数为 7 行)

    id          Detail
    ----------- ------
    1          A
    1          A
    2          A
    2          A
    3          B

    (所影响的行数为 5 行)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-15 14:06:134楼 得分:0
    SQL code
    DECLARE @a TABLE(id int, Detail varchar(20)) INSERT @a SELECT 1 ,'A' UNION ALL SELECT 1 ,'A' UNION ALL SELECT 2 ,'A' UNION ALL SELECT 2 ,'A' UNION ALL SELECT 2 ,'B' UNION ALL SELECT 3 ,'B' UNION ALL SELECT 3 ,'B' SELECT * FROM @a a WHERE Detail='A' UNION ALL (SELECT DISTINCT * FROM @a WHERE id NOT IN (SELECT id FROM @a a WHERE Detail='A')) --result /* id Detail ----------- -------------------- 1 A 1 A 2 A 2 A 3 B (所影响的行数为 5 行) */
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • HEROWANG
    • 等级:
    发表于:2008-07-15 14:07:345楼 得分:0
    select id ,detail=
    case when a.detail='A' and a.detail=b.detail then a.detail
          when a.detail='B' and a.detail=b.detail then a.detail
    from tb_aa a,tb_aa b
    where a.id=b.id
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • LIHY70
    • 等级:
    发表于:2008-07-15 14:10:206楼 得分:0
    同意楼上的
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved