‘壹’ sql查询一个表里的数据在另一个表是否存在
--创建测试表
CREATE TABLE AA_TMP(ID VARCHAR2(10)); --插入目标表
CREATE TABLE AA_LOOKUP(ID VARCHAR2(10));--要插入的数据
INSERT INTO AA_LOOKUP VALUES('1');
INSERT INTO AA_LOOKUP VALUES('2');
INSERT INTO AA_LOOKUP VALUES('3');
COMMIT;
--插入数据不存在时更新
INSERT INTO AA_TMP(ID)
SELECT ID FROM AA_LOOKUP A
WHERE NOT EXISTS
(SELECT 1 FROM AA_TMP B
WHERE A.ID=B.ID
)
;
COMMIT;
‘贰’ sql语句 判断表数据是否存在另一个表中
只需判断一下即可,根据你的题目意思应该是a表的id和b表的id相关联。
select *, case when (select count(*) from b where id = a.id)>0 then 1 else 0 end as flag from a如果你是想a表和b表的字段和id这两列都一样,才将flag显示为1的话,用下面的查询:
select *, case when (select count(*) from b where id = a.id and 字段 = a.字段)>0 then 1 else 0 end as flag from a
‘叁’ sql语句 判断表数据是否存在另一个表中
工具/材料:Management Studio。
1、首先在桌面上,点击“Management Studio”图标。
‘肆’ 如何在SQL中设置插入时判断表中是否有该数据
是这样的,insertinto...values...语句不允许和where子句一起使用的(子查询追加insertinto...select...则可以在子查询里使用where子句)。要实现题主的这个需求,只能通过应程序端编程或在数据库端的存储过程里解决。
补充回答
后来我尝试了一下用insertinto...select..变通一下单凭SQL也可以解决,我在ACCESS里测试这个思路通过了。由于身边没有MSSQL环境,请题主测试下列代码,我想应该也是可以的
insertintotbTeam_dailyselect
top1N'2011-12-2',N'3组',N'',N'23'fromtbTeam_daily
wherenotexists(select1fromtbTeam_daily
wheretdate=N'2011-12-2'andteamName=N'4组');
‘伍’ sql语句,查询表A,判断表A是否有数据,有则连同查出表C的数据,没有则
这个可以下列SQL语句予以实现
selectcol1,col2,col3fromAwhere
exists(select1fromA)
union
selectcol1,col2,col3fromBwhere
notexists(select1fromA)
union
selectcol1,col2,col3fromC;
如果ABC三表数据结构一样,可用*号取代输出字段列表
请参见下列实验结果
‘陆’ sql server2005 如何判断表中是否有数据
selectCOUNT(*)from表名where条件语句
如果只是判断记录是否存在,而不需要获取实际表中的记录数
还有一种推荐做法:
ifexists(select*from表名where条件语句)select'1'elseselect'0'
通过返回值去判断是否存在。
第二种方法效率高些,但使用profiler工具分析
通过where条件过滤出100多条数据时。第一种方法的rtion明显比第二种方法的低很多
也就是说,第一种效率高些。
‘柒’ 判断sql server中表中是否有数据
SQL Server中判断表中字段是否存在:
if exists
(select * from syscolumns where name='colname1' and id=object_id('数据库名.Owner.表名'))
print '存在'
else
print '不存在'
(代表表tablename1中存在colname1字段 )
例:
select * from syscolumns where name='Test' and id=object_id('dbo.test')