select-SQLServer中如何判断一条记录不能存在并使用其他值代替?

问题描述

SQLServer中如何判断一条记录不能存在并使用其他值代替?

现有表tableA,tableB。tableA有一列为bid,是通过该列跟tableB中的一行记录关联 。
一个存储过程中的语句如下,作用是获取A表中的一些信息,并通过bid获取与其关联的 tableB中的某一行的信息。(另外,tableB中会有一个aid的列,通过该列和tableA中的一条记录对应,一条talbeA中的记录可以对应tableB中多条记录,以最后更新的那条tableB记录为绑定)
select tableA.no, talbeA.total, tableB.s1, tableB.s2 from tableA,table B where tableA.bid=tableB.bid

但这样执行的话,若tableA.bid这一条记录在talbeB中不存在,则筛选不出数据来。
现在我希望改成,若tableA.bid不存在,则从tableB中找出aid=tableA.aid的最后一条记录替换给到tableA.bid(id是按1的增量标识插入)。然后再作
select tableA.no, talbeA.total, tableB.s1, tableB.s2 from tableA,table B where tableA.bid=tableB.bid这功能

解决方案

 update tableA set bid=(select max(bid) bid from tableB where aid=tableA.aid)
where bid not in (select bid from tableB)

解决方案二:

使用左连接或右连接,然后在判断

时间: 2024-10-28 17:46:25

select-SQLServer中如何判断一条记录不能存在并使用其他值代替?的相关文章

C#中从sqlserver数据库中随机提取一条记录并显示在不同的文本框中

问题描述 C#中从sqlserver数据库中随机提取一条记录并显示在不同的文本框中如图 解决方案 解决方案二:SQL:selecttop1姓名,学号,班级from表orderbynewid()C#对应上就好了.

SQLSERVER中快速获海量数据的记录总数

server|sqlserver|数据 2月份 曾写过一篇sqlserver 优化海量查询的方法http://blog.csdn.net/great_domino/archive/2005/02/01/275839.aspx 最近有同事遇到sqlserver统计记百万条以上记录条数太慢的问题,sp经常会遇到统计大量数据问题,或许是巧合的原因,找到一个很简单的方法! 写了一篇文章 我们在统计记录的时候通常的做法是:select count(*) as c from table .然而对于记录数巨大

SQLServer 分组查询相邻两条记录的时间差

原文:SQLServer 分组查询相邻两条记录的时间差 首先,我们通过数据库中表的两条记录来引出问题,如下图 以上为一个记录操作记录的表数据.OrderID为自增长列,后面依次为操作类型,操作时间,操作人. 现在的问题是:要求筛选出数据库中从"接收"到"送出"的时间差超过2天的全部记录.即如上图两笔单据中,红色框既是要筛选出的,绿色框为正常过滤的. 为了定位相邻记录,方法为给查询语句的返回记录加个自动编号列放入临时表中,再对临时表进行操作. View Code --

不同数据库中查询前几条记录的用法(SQL Server/Oracle/Postgresql)

SQL在不同数据库中查询前几条记录的用法分类 1. orACLE Select * FROM TABLE1 Where ROWNUM<=N 2. INFORMIX Select FIRST N * FROM TABLE1 3. DB2 Select * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM Where ROWNUM<=N 或者Select COLUMN FROM TABLE FETCH FIRST N ROWS ONLY 4. SQL

select-asp.net 从Access中随机读取5条记录

问题描述 asp.net 从Access中随机读取5条记录 我用的是 select top 5 * from Pro where TypeId =1 order by rnd(ID) 在数据库查询的时候是随机的5条 每次查询都会变 但是在网页绑定时一直不变总是那几条记录 是什么原因? 解决方案 Asp.net获取Access随机记录ASP.NET 2.0中随机读取Access数据库记录ASP.NET 2.0中随机读取Access数据库记录

db2-DB2中如何把一个表中一条记录的多个字段的值赋值给另一个表中的相应字段

问题描述 DB2中如何把一个表中一条记录的多个字段的值赋值给另一个表中的相应字段 例如表a 工号 姓名 年龄 性别 001 张三 30 男 002 李四 40 男 表b 工号 姓名 性别 岗位 住址 如何把表a中的第一条记录的字段(工号,姓名,性别)的值赋值给表b 解决方案 所有的数据库都可以象下面这样指定字段的啊 INSERT INTO 表b(工号姓名性别) SELECT 工号姓名性别 FROM 表a

代码-dreamweaver cs6 怎么在框架中显示数据库中的某一条记录?

问题描述 dreamweaver cs6 怎么在框架中显示数据库中的某一条记录? 我在制作网页的时候陷入了瓶颈,现在希望能在dreamweaver中实现这个功能:点开一个链接,直接显示出数据库中的某一条记录,并且在下面的"推荐项目"后随机显示出其他的条目. 如果要实现这个功能,代码应该怎么写 解决方案 通过javascript等来访问数据库,获取数据,然后再显示到html页面 http://www.jb51.net/article/42178.htm 解决方案二: Dreamweave

在POPUPWIN控件中能否显示多条记录?如何显示?

问题描述 在POPUPWIN控件中能否显示多条记录?如何显示?请各位大侠指教!急!

请教如何将数据库中的某一条记录的内容读到一个变量中?

问题描述 请教vb.net2005如何将数据库中的某一条记录的内容读到一个变量中?希望语句能有注释,谢谢!数据库为Access2003 解决方案 解决方案二:Access位置是否相对固定?如果相对固定又没有太多安全上的要求的话不用自己写代码就成.在项目中添加你那个Access文件,然后会在工程数据库中看到你添加的内容,把东西往窗体上一拖就成了,自动会在Load中添加代码.解决方案三:谢谢楼上的朋友回复,数据库的绑定.链接等等我知道,现在需要的是读某一条记录到一个变量中的方法!应该如何写语句?解决