sssanton
2015-06-18 02:49
采纳率: 27.3%
浏览 1.7k

SQLSERVER语句编写问题

现在有一表A,表B,表A有列gpstime,表B中有列pictime。
原来筛选是select * from tableA.
现在希望在筛选结果中加入一列result,判断A中的每一行的gpstime,在B中是否有对应的行有同样值的pictime。
如果有,则result=1,否则result=0这样。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • bdmh 2015-06-18 02:56
    已采纳

    select A.*,B.id from A left join B on A.gpstime = B.pictime
    这样没有对应的id字段是null,然后你在用when case取分开

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 淡定0606 2015-06-18 02:56

    select
    case (select count(*) from b where a.pictime = b.pictime)
    when 1 then "1"
    else "0"
    end as result,
    a.* from a

    评论
    解决 无用
    打赏 举报
  • 夢里花落 2015-06-18 03:07

    非得写sql吗? 可以这样select gpstime from a 这个返回一个datatable dt1, select pictime from b 这个返回dt2
    然后定义int result =""; for(int i=0;i<dt1.rows.count;i++){if( dt1.row[i]["gpstime"] == dt2.row[i]["pictime"]){result=1;}else{result = 0;}}

    评论
    解决 无用
    打赏 举报
  • 帘卷西风 2015-06-18 03:16

    连表查询,其实还蛮简单的啦,加一个where取出记录的个数,根据记录个数返回0或者1

    评论
    解决 无用
    打赏 举报
  • 不是阿尔伯特 2015-06-18 03:23
    select A.*,CASE WHEN B.id  IS NULL THEN 0 ELSE 1 END Result
    from A left join B on A.gpstime = B.pictime
    

    仅当B的pictime没有重复数据的时候适合使用

    评论
    解决 无用
    打赏 举报
  • 不服输的人 2015-06-18 09:00

    left join 即可

    评论
    解决 无用
    打赏 举报
  • beaconD 2015-06-19 05:30

    select A.*,B.id from A left join B on A.gpstime = B.pictime

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题