sql 根据条件更新记录 case then

sql 根据条件更新记录 case then第一个利用存储过程来做

declare @str varchar(500)
set @str=@str+'update 表名'
if state=1
  set @str=@str+' set state=0'
else 
  set @str=@str+' set state=1'

set @str=@str+' where moduleroleid='1'
exec(@str)

//

update 表名 set state=0 where moduleroleid="1" and state=1
update 表名 set state=1 where moduleroleid="1" and state=0
-- case..when
update 表名 case when state=1 then set state=0 else set state=1 end where moduleroleid='1'
-- if..else
if exists select 1 from 表名 where moduleroleid="1" and state=1
    update 表名 set state=0 where moduleroleid="1" and state=1
else   
    update 表名 set state=1 where moduleroleid="1" and state=0
end
-- 这主意不错:l
update 表名 set state=(state+1)%2 where moduleroleid="1"

时间: 2025-01-21 08:08:48

sql 根据条件更新记录 case then的相关文章

SQL循序渐进(7)更新记录

更新记录 Update语句用于更新或者改变匹配指定条件的记录,它是通过构造一个where语句来实现的.其语句格式如下: update "tablename" set "columnname" = "newvalue"[,"nextcolumn" = "newvalue2"...] where "columnname" OPERATOR "value" [and|or

SQL查询数据库中符合条件的记录的总数_MsSql

1. select count(*) from table; //统计元组个数 2. select count(列名) from table; //统计一列中值的个数 3. select count(*) from table where 字段 = ""; //符合该条件的记录总数 4. sql_count = "select count(*) from article a where 1=1 "; //这条语句中a就代表article 这张表,后面可以写a.字段来

SQL语句参考及记录集对象详解

参考|对象|记录集|详解|语句 1. ASP与Access数据库连接: 2. ASP与SQL数据库连接: 建立记录集对象:set rs=server.createobject("adodb.recordset") rs.open SQL语句,conn,3,2 3. SQL常用命令使用方法: (1) 数据记录筛选:sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"sql="select * fr

access数据库-access连接sql server同步更新问题

问题描述 access连接sql server同步更新问题 电脑A数据采集用的是access每天更新一张新表,连接服务器B的sql server同步更新也是一天一张新表,利用什么方式可以解决? 解决方案 用C#写个windows服务程序或winform客户端,定时获取sql server,写入access. 解决方案二: SQL Server和Access中的条件判断语法(case when和iff)连接到数据庫(ACCESSSQL SERVER)两台SQL Server服务器同步问题.

请教大师sql存储过程自动更新

问题描述 请教大师sql存储过程自动更新 请教大师 我想写一个存储过程:当记录满足某一条件时自动更新最后一条记录,有代码最好

菜鸟学ADO实例教程之ADO 更新记录

ado|教程 本站原创内容,转载请注明出处网页教学网. 我们可以使用SQL UPDATE 命令来更新数据库中的记录. 我们想更新数据库webjx中的一个表Customers中的一个记录,首先我们把表Customers中的所有记录显 示出来. <html> <body> <% set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0

用标准的SQL语句实现查询记录分页

标准|分页|语句 在绝大多数的应用中,返回大量的符合条件的记录是司空见惯的,最典型的莫过于搜索了.在搜索的应用中,用户给出搜索条件,服务器查出符合条件的记录.但往往搜索会返回大量的数据记录,如果在网页中,往往是通过分页的方式来实现,页面提供诸如上一页,下一页等等按钮来实现分页.现在主要有以下几中方式来实现分页:1.EJB的Find方法2.在显示第一页前将所有的记录放在collection对象中,后续的各页都在内存中取.3.每一页都到数据库作一次重复的查询,然后将符合条件的记录显示出来.4.保存前

SQL语法及ASP中SQL语句参考及记录集对象

sql语法|参考|对象|记录集|语句 SQL语法 DB2 提供了关连式资料库的查询语言 SQL (Structured Query Language),是一种非常口语化.既易学又易懂的语法.此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML).SQL原来拼成SEQUEL,这语言的原型以"系统 R"的名字在 IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展

SQL触发器在插入记录中根据A字段自动给B字段赋值

问题描述 SQL触发器在插入记录中根据A字段自动给B字段赋值 假如我有一个人员信息表,表的字段结构如下: 姓名 性别 性别值 性别字段,如果为男,性别值为0: 性别字段,如果为女,性别值为1: 性别字段,如果为中性,性别值为3: 在插入记录的时候,只会插入 姓名和性别两个字段.现在想要通过触发器来自动填充后面一个'性别值'字段. 这个如何实现呢?求指导.插入的时候,可能一次性插入多条记录. (MSSQL 2008数据库) 解决方案 sqlserver貌似是不支持oracle的for each r