当前位置:首页 » 编程语言 » sql删除条件

sql删除条件

发布时间: 2022-08-05 21:01:43

❶ 有条件删除sql数据的部分内容

假设表的主键为id
DELETE
a
WHERE
(id
IN
(SELECT
m.id
FROM
a
AS
m
INNER
JOIN
a
AS
n
ON
SUBSTRING(m.电话号码,
1,
4)
=
SUBSTRING(n.电话号码,
1,
4)
AND
m.id
<>
n.id
WHERE
(DATALENGTH(m.电话号码)
<
13)
AND
(DATALENGTH(n.电话号码)
>
12)))
----------------------------------------------------------------
m,n是表的两个别名
删除满足以下4个条件的m表中的记录,
1,m
n两表主键id不相等,指代同一表中的不同记录。
2,SUBSTRING(m.电话号码,
1,
4)
=
SUBSTRING(n.电话号码,
1,
4)
,两条记录的电话号码的前4位相等,即区号一致。
3,n表的那条记录的电话号码字段长度必须大于12,即4位区号+1位空格+8位电话号码=13
4,m表的那条记录的电话号码字段长度必须小于13,即4位区号+1位空格+7位电话号码=12
改成
DELETE
a
WHERE
(id
IN
(SELECT
m.id
FROM
a
AS
m
,a
AS
n
where
SUBSTRING(m.电话号码,
1,
4)
=
SUBSTRING(n.电话号码,
1,
4)
AND
m.id
<>
n.id
and
(DATALENGTH(m.电话号码)
=
12)
AND
(DATALENGTH(n.电话号码)
=
13)))
好理解点
------------------------------------------------------------
没空格的话,只要把(DATALENGTH(m.电话号码)
=
12)
AND
(DATALENGTH(n.电话号码)
=
13)))
改成(DATALENGTH(m.电话号码)
=
11)
AND
(DATALENGTH(n.电话号码)
=
12)))就可以了。
不止一种区号没关系,只要区号长度为4就行了。
-----------------------------------------------------------
我这的确是两表对比,但这两张都是同一张表,不影响什么。
你怕删错的话,可以先
select
*
from
a
WHERE
(id
IN
(SELECT
m.id
FROM
a
AS
m
,a
AS
n
where
SUBSTRING(m.电话号码,
1,
4)
=
SUBSTRING(n.电话号码,
1,
4)
AND
m.id
<>
n.id
and
(DATALENGTH(m.电话号码)
=
12)
AND
(DATALENGTH(n.电话号码)
=
13)))
看一下要删的东西对不对么。
一种区号下的7位号码?
你的这种区号是怎么确定的?是根据该区号即有7位号码也有8位号码?还是这个区号由外部输入指定啊?前者的话,我前面的sql文能实现,但未必是一种,比如说有数据
01237654321
012387654321
04567654321
045687654321
07897654321
的时候,就只会删除第一第三两条。
-----------------------------------------------------------------------
你把这个放进去,看看是不是你要删除的东西。
select
*
from
a
WHERE
(id
IN
(SELECT
m.id
FROM
a
AS
m
,a
AS
n
where
SUBSTRING(m.电话号码,
1,
4)
=
SUBSTRING(n.电话号码,
1,
4)
AND
m.id
<>
n.id
and
(DATALENGTH(m.电话号码)
=
11)
AND
(DATALENGTH(n.电话号码)
=
12)))
如果是,就用以下代码删除
DELETE
a
WHERE
(id
IN
(SELECT
m.id
FROM
a
AS
m
,a
AS
n
where
SUBSTRING(m.电话号码,
1,
4)
=
SUBSTRING(n.电话号码,
1,
4)
AND
m.id
<>
n.id
and
(DATALENGTH(m.电话号码)
=
11)
AND
(DATALENGTH(n.电话号码)
=
12)))
另外,如果你只是单纯的要把所有4位区号+7位数字的记录全部删掉的话,只要用以下代码就可以了。
delete
a
where
DATALENGTH(电话号码)
=
11
前提是,你正确的数据里面不存在4位区号+7位数字,如果有,就只能用我上面说的方法了

❷ SQL删除语句(有条件的)

delete from URTAB where id not in (select parentid from URTAB)

这样会把所有末梢部门全部宰了,这里末梢部门指所有没有子部门的单位——
不管它有没有父部门

如果需要保留没有父部门的,加上一个条件

delete from URTAB where parentid not null and id no in (select parentid from URTAB)

❸ 删除数据库的sql语句如何写

1、drop database:数据库名--删除数据库的。


2、drop table:表名--删除表的。


3、delete from:表名--where条件--删除数据的。


4、truncate table:表名--也是删除数据库的。

拓展资料

1、SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

2、SQL语句无论是种类还是数量都是繁多的,很多语句也是经常要用到的,SQL查询语句就是一个典型的例子,无论是高级查询还是低级查询,SQL查询语句的需求是最频繁的。

❹ SQL语句按条件删除数据

前提是secend中的username是主键 first中是username是外键语句如下
delete from second where username in (select username from first where to_number(to_char(time,'yyyymmdd')) < 20120203) cascade;
ps:否则还需要重新删除first中的行如下
delete from first where to_number(to_char(time,'yyyymmdd')) < 20120203;

❺ SQL删除语句多条件删除怎么写

用and,条件是并列的,就是说and前后的条件同时满足才能删除
delete from 销售 where 单号 =‘1001’ and 条码='3002'
祝好运,望采纳。

❻ 怎样用SQL语句删除约束条件

删除约束的语法如下:

Alter Table 表名
Drop Constraint 约束名
附加:在创建表的时候同时添加约束的写法:

use stuDB
go
if exists(select * from Sysobjects where name = 'stuInfo')
drop table stuInfo
go
create table stuInfo
(
stuName varchar(20) not null primary key(stuName)
,stuID int not null unique(stuID)
,stuAddress varchar(20) not null default('地址不详')
,stuAge int not null check(stuAge between 15 and 40)
)

❼ 求SQL语句:按条件删除数据

delete from secend t where t.username in (select username from first where time like '20120203%');
delete from first where time like '20120203%';
commit;

记得要先删secend表,再删first表。

表的数据量不会很大吧?那就直接执行就可以了。

另外如果time数据类型是date的,那就把time like '20120203%' 改成
time >=to_date('20120203','yyyymmdd') and time <to_date('20120204','yyyymmdd')

❽ sql删除语句怎么写

delete from table_name 删除全表数据
delete from table_name where 条件 ,根据条件删除数据

热点内容
剪力墙压脚筋大小怎么配置 发布:2025-01-23 00:50:53 浏览:534
腾讯云cos云服务器 发布:2025-01-23 00:46:47 浏览:63
如何给安卓平板刷上MIUI系统 发布:2025-01-23 00:45:51 浏览:73
2开方算法 发布:2025-01-23 00:27:21 浏览:16
如何看自己steam服务器 发布:2025-01-23 00:07:21 浏览:710
armlinux命令 发布:2025-01-23 00:01:08 浏览:137
战地4亚洲服务器为什么被攻击 发布:2025-01-22 23:45:42 浏览:671
javascript反编译 发布:2025-01-22 23:37:57 浏览:432
夏天来了你的巴氏奶存储对吗 发布:2025-01-22 23:37:56 浏览:206
求最大值c语言 发布:2025-01-22 23:22:35 浏览:250