sql删除语句,多条件删除怎么判断?

sql删除语句,多条件删除怎么判断?,第1张

delete from table where a=123 and time>'21:30' and time <'21:40'

实例删除,2008-08-11 12:00:15秒的数据

delete from t_cp where callpsalary=1800 and stime>'2008-08-11 12:00:00' and stime <'2008-08-11 12:01:00'

只删除这一条!

01

如图,比如我有一张数据表studentinfo,我想要删除studentid为1009的这条数据。

02

我们可以直接点击设计界面下方的减号来删除数据。如图,选中数据,然后点击减号按钮。

03

点击减号之后,就会d出一个提示框,问你是否要删除这条数据。

04

之后,选中的数据记录就从数据表中删除掉了。

05

也可以使用SQL语句来删除数据记录,点击查询菜单下的“新建查询”。

06

如图,在其中输入delete from studentinfo where studentid=1001

这样就可以删除studentid为1001 的数据记录了。

Delete from 后面接的是表名,where后面接的是条件,

因为我是要删除studentinfo表中studentid等于1001的记录,所以就这样写。

07

之后,点击运行按钮来执行删除 *** 作。

08

如图,回到之前的界面,需要点击一下下边的刷新按钮。

09

这样,我们就可以看到1001的那条记录已经被删除掉了。

10

而如果想要删除全部的数据记录,可以直接输入查询语句:delete from studentinfo

运行之后就可以删除全部的数据记录了。

11

如图,所有的数据记录都被删除掉了。

假设表有4个字段为FIELD1-FIELD4

只有有一个字段为空就删除

DELETE BIAO WHERE

FIELD1 IS NULL OR

FIELD2 IS NULL OR

FIELD3 IS NULL OR

FIELD4 IS NULL

所有字段为空才删除:

DELETE BIAO WHERE

FIELD1 IS NULL and

FIELD2 IS NULL and

FIELD3 IS NULL and

FIELD4 IS NULL

第二个问题,看不出您的日期字段格式是什么格式,也没看清您想要什么样的结果,相距的时间是什么?是天,还是月,还是年?

假设您的日期字段是DATETIME类型,我列举了您需求的多种情况:

--如果是要几年或几天或几个月,下面三行分别得到总年数或总月数或总天数(如果是一年就会得到365或366)

select datediff(year,注册时间,getdate())--总年数(整数)

select datediff(month,注册时间,getdate())--总月数(整数)

select datediff(day,注册时间,getdate())--总天数(整数)

--如果是要得到几年和几个月和几天的组合结果(与上面的总数结果不同,这里日不会过31,月不会过12,年月日结果是进位关系),按下面的方法得到.

select cast(datename(year,getdate()-注册时间)-1900 as varchar)+'年'

+cast(datename(month,getdate()-注册时间)-1 as varchar)+'个月'

+cast(datename(day,getdate()-注册时间)-1 as varchar)+'日'

注意:上面两例中,注册时间是您的字段名,GETDATE()是求出的当前日期和时间,如果是别的什么时间字段,如最后登录时间,直接用登录时间替换GETDATE()就行了.

=====================

sql server中的空值就是这样的(NULL),您说的,应该即不是空值,也不是零长度的字符串,也不是数值零.

所以,当不是空值时,您必须要告诉我们字段是什么类型的.

如果您的字段是VARCHAR,NVARCHAR或CHAR类型的,

那么可能就有三种情况,

1.是空格.

2.是零长度字串.

3.是不可显示的乱字符.

但无论哪一种情况情况,只要是字符型的,用您的语句都不会报错,就是这一句:

delete biao where field1=''

除非字段或表名有错误.

建议:

如果是字符型字段(VARCHAR,NVARCHAR或CHAR类型等)

delete biao where RTRIM(field1)=''

如果是数值型字段(INT,FLOAT,DECIMAL等类型,甚至日期型)都可以用下面的语句删除0值.

delete biao where RTRIM(field1)=0

就是说:

如果不是空值(NULL),就必须要知道字段是什么类型才能确定语法格式.

====================

==============================

最后提醒您,我费了好长时间回答您的问题,为了使用我们下次还有这么大的积极性,最少要加到200分才行啊!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6460441.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-22
下一篇 2023-03-22

发表评论

登录后才能评论

评论列表(0条)

保存