举个例子:
表request中有字段state(int)和time(datetime)
查询request(state=-1)
如果getdate()-time>0,设置state=0,显示该记录
否则,设置state=1,并删除request中该记录,同时将该记录的
部分信息添加到record表中。能不能在一个select语句中实现?
表request中有字段state(int)和time(datetime)
查询request(state=-1)
如果getdate()-time>0,设置state=0,显示该记录
否则,设置state=1,并删除request中该记录,同时将该记录的
部分信息添加到record表中。能不能在一个select语句中实现?
GO
INSERT tbSource VALUES(1,N'甲'),(2,N'乙')
GO
SELECT * INTO tbDest FROM tbSource DELETE tbSource WHERE c1=1
UPDATE tbSource SET c2=N'乙2' WHERE C1=2
INSERT tbSource VALUES(3,N'丙') MERGE tbDest D
USING tbSource s
ON D.c1 = S.c1
WHEN MATCHED THEN --修改
UPDATE SET D.c2 = S.c2
WHEN SOURCE NOT MATCHED THEN --删除
DELETE
WHEN TARGET NOT MATCHED THEN --新增
INSERT VALUES(c1, c2)
OUTPUT $action, INSERTED.c1 [New c1],
INSERTED.c2 [New c2],
DELETED.c1 [Original c1],
DELETED.c2 [Original c2];
http://topic.csdn.net/u/20080514/15/af788986-0ef6-4d83-8e9d-4cb97e2831c8.html?13522
在where里嵌套case when行不行啊?