SQLSERVER语句编写问题

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

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

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

非得写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;}}

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

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没有重复数据的时候适合使用

left join 即可

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