循环的where条件怎么写?

sqlserver数据库中,
有一个表T两个字段id和pid,其中pid以id为外键,

id pid

1 -1
3 1
4 -1
7 3
10 7
11 1
12 -1
现在的目标是:删除id为1的记录,以及它的子记录(包括子记录的子记录)。
比如删除id为1的记录,就需要删除它的子记录3、11,删除3的子记录7,删除7的子记录10

那么这个循环的where条件怎么写呢?
不要用存储过程吧?

3个回答

想提高效率就用存储过程

public void delete(int id)
{
if(判断是否有子记录如果没有)
{
直接删除
}
else
{
for(把子记录中的值循环取出来)
{
调用delete(id);
}
}

}

你试下吧,我没有测试。

可以写个sql语句,根据 id,得到它的无限级子记录的List,然后批量删除
select * from t connect by prior id = pid start with id = 1 order by id

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
where条件怎么写
表1里其中一个字段deptid里有多个部门id,中间用逗号隔开,例如:01,03,09。rn现在我要做查询,按照用户登录获得这个用户的部门id为09,现在的条件是,用户所在的部门必须在depid里存在,才能查询表1的数据。然后写sql查询语句。请教:怎么写?条件...
SQL 的WHERE条件怎么写
现在我表如下rnID NAMErn 1 abcdrn 2 bcdern 3 cdefrn 4 defgrn现在我通过一个传入的条件值 为 abcdefrn怎么写WHERE条件才能把1,2,3 3条记录查出来,排除第四条记录
键盘中断循环的条件应该怎么写?
一个while循环,想用键盘中断其运行,while循环中的条件应该怎么写?rn就是按下 Ctrl-C 中断循环的运行rnwhile( [color=#FF0000]?[/color] )rn请问这个[color=#FF0000]?[/color]的地方 应该写什么
表连接条件写在where 后面怎么写?
表连接条件写在where 后面怎么写? left right 能写在where子句后面吗
where条件中二选一怎么写
一张业务表,一张审批表,通过id关联,一个业务号对应审批表中有发证和归档2个步骤,可以只有发证或归档,也可以2个步骤都有rn请问如果要关联查询时怎么过滤条件,我要提取时间:如果只有发证就取发证时间,如果只有归档就取归档时间,如果发证和归档都有,就取发证时间。最后关联完只能留下一条记录rnselect 业务表id, 审批表.time from 业务表 inner join 审批表 on 审批表.id=业务表.id .....
这个where 条件怎么写?(急!!!)
在SQL Sever 里可以这样:rnselect * from T1 where name like '[a-z]%'表示查以a,b,c...,z打头的数据。rnrn在Oracle 里有对应的吗?
这个where后面的条件怎么写?
select * from table where a=brnb的条件是如果b=空,那么就是a=c,如果b不等于空,那么就是a=b,这个where后面的条件怎么写?
为什么for循环的条件这样写?
截取的示例代码:rn String []cooked="a","b","c","d","e","f","g",;rnfor (String str : cooked) //这个条件应该怎么理解rn builder.append(" " + str);rn rnrnrn
WHERE 里面根据别的条件写条件
DECLARE @A INTrnSELECT NUMrnFROMrn TestTablernWHERErn CASE WHEN @A < 7 THEN NUM LIKE '%AD%'rn WHEN @A > 70 THEN NUM LIKE '%ADB%'rn ENDrnrn上面是不行的,我想达到这个目的 , 也不想拼sql 然后exec(sql)rnrn可以做到吗?
这个where条件怎写
DECLARE @fsign AS INTrnrn @fsign 有0和1两个值rnrnrn当 @fsign =0 时,查询出表的字段 fsign=0 rn当 @fsign =1 时,查询出表的字段 fsign>0 rnrn除了if,能不能一个where 条件写好rn
for循环的条件
[img=https://img-bbs.csdn.net/upload/201711/21/1511227797_974775.jpg][/img]rnrn这是一个逆序打印的题,第二个for循环的第一个条件p--是什么意思?赋值条件还可以这样写吗?rnrn[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/17.gif][/img]
怎么根据if条件 来加where条件
rn怎么根据if条件 来加where条件。比如说rnrnselec*......rn............rn....rn.......rnform userrnif(@name='')rn beginrn where age=@agern endrnelse if(@age="")rn beginrn where name=@namern endrnelsern beginrn where name=@name and age=@agern endrnrn这个意思,不知道怎么实现
一个where条件怎么得到
一个where条件该怎么得到!谢谢rnrnpb.addSql_con(" salesid='"+Session["id"]+"'");//说明:这个是只看是登陆ID的客户信息,相当于平时用的select * from where salesid='"+Session["id"]+"'rnrn第一个表 customer(客户表)中有一个salesid(所属用户ID)字段(没有deptid字段,通过用户saleid可以获得是哪个部门的客户)rnrn第二个表 department(部门表)中也有一个salesid(部门负责人ID)deptid(部门ID)字段rnrn第三个表 sales(用户表)中有一个salesid(用户ID)字段rnrn如果登陆业务员是部门负责人他可以查看这个部门内所有用户的所有客户信息,如果不是部门负责人只能单看他自己的客户信息,这个可以用SQL语句怎么得到?rnrn自己有思路不知道怎么写,通过登陆用户salesid与用户所在部门下的salesid比较如果相等,就是部门负责人,然后查询该部门下的所有用户,然后在去customer(客户表)查找所有这个部门的客户信息,请SQL高手指教
where 条件怎么不起作用呢
形如下的SQL: rnselect a.aa, a.bb, a.cc rn from ( select b.aa, b.bb, case b.dd when ... end cc from b) a rnwhere a.cc = 'someValue' rnrn解释下: rn内层查询中 根据b.dd列的值,经过一系列复杂的判断终于得到cc。 rnrn外层查询用这个新列cc来过滤数据。 rnrn经测试本人的sql 内层查询( select b.aa, b.bb, case b.dd when ... end cc from b) 的结果毫无问题,新列cc很正常。 rn但是外层的 where a.cc = 'someValue' 过滤不起作用, 查询结果是所有数据。 rnrn更郁闷的是,程序中还有个地方也都也是形如上面的sql,居然很正常。。。。 rnrn哪位大侠给讲讲怎么回事呢,有没有人遇到类似的情况呢?rn
where条件
--一个知识点 --where查询条件 --1、where 25 = age 和 where age = 25是合法且相同的语句 --2、比较运算符:= >= != --               between...and...(包含边界),in(list),like(_),is null --               not between...and...,not in,
where 条件!
请问,"select * from s_sickroom where roomid = ",如果roomid 是个整形变量,那变量该怎么定义,sql语句该怎么写?谢谢了~
Where 条件
[code=sql]update dbo.RPT_resultA41 set BudgetAvgPerMth=BudgetYtd/9 rn from dbo.RPT_resultA41rn where CompanyID=1 and classify=-1[/code]rn这个 [color=#FF0000] where CompanyID=1 and classify=-1[/color]条件属于UPdate 条件是还是 from dbo.RPT_resultA41的条件呢!rn[code=sql]update dbo.RPT_resultA41 set BudgetAvgPerMth=(Select BudgetYtd/9 from dbo.RPT_resultA41rn where CompanyID=1 and classify=-1)rn where CompanyID=1 and classify=-1[/code]rn这样写是同样结果的,那条件是怎样判断的呢?
where in 在存储过程怎么写?
表users ID intrn表Forum userId varchar 字数据库里表示(1,7)rnrn尝试过方法:rn[code=SQL]rnrnALTER PROCEDURE [dbo].[BBS_UserNameById]rn@Liang_Id intrnASrnrnSELECT * FROM Users WHERE Liang_Id in('+@Liang_Id+')rnrnrnSELECT * FROM Users WHERE Liang_Id in(@Liang_Id)rn[/code]rnrn[code=SQL]rnrnALTER PROCEDURE [dbo].[BBS_UserNameById]rn@Liang_Id intrnASrnDECLARE @sqlstr nvarchar(200)rnrnrnset @sqlstr = 'SELECT * FROM Users WHERE Liang_Id 1=1'rnrnset @sqlstr = @sqlstr+' AND Liang_Id in ('+@Liang_Id+')'rnrn[/code]rnrn[code=SQL]rnrnSELECT * FROM Users WHERE CHARINDEX(','+LTRIM(Liang_Id)+',',','+@Liang_Id+',')>0rnrnrn[/code]rnrn2天了,也没解决rn如果写简单的sqlrnrnSELECT * FROM Users WHERE Liang_Id in('+userId+') 即可rnrn在存储过程怎么写也不对rnrn求DB高手!rn
where怎么写
SQL Server 2000 有了一个表,其中主建是 时间datetime类型的,我要查询从2006-3-21 13:24 到2006-3-21 15:30分的查询语句怎么写.rnrnselect * from table where ...,请问where后怎么写。
where怎么写?
select top 6 * from music order by chick 这个是查询点击率的rn现在的问题是 查询 只有会员点击率 会员列名 hy_chick 1是游客 2是会员rnselect top 6 * from music order by chick where...这里怎么写?
Update时忘了写where条件
急!!! rnrn对数据库Update时忘了写where条件,结果造成所有数据都被改了(没有备份),请问高手这个操作可以恢复吗?rn(数据库是Sql的)如何恢复,最好能说详细点。
laravel写where条件或者的关系
-&gt;where(function ($query) use ($uuid) { $query-&gt;where('teacher_uuid', $uuid)-&gt;orWhere('examiner_uuid', $uuid); }) 这个where条件保证了教师的uuid 或者考官的uuid ...
MySQL- where条件 in 条件优化
文章目录简介探明原因总结 简介 MySQL的sql语句中,如果in的条件过多,可能会没办法利用索引来进行检索数据,如下: 表结构 mysql&amp;gt; show create table test_in\G *************************** 1. row *************************** Table: test_in Create Tab...
外联结的ON条件与WHERE条件的区别
请注意以下联结的不同。 employee_id = 200作为联结条件时,会有其余的行输出: HR@ prod> select /*+ ordered */ first_name , last_name , department_name 2 from employees e right outer join departments d on ( e.department_id = d.d
where 条件句中的一个是另一个查询语句查询结果,怎么写?
select thedate from SCset where id=1rnselect * from baisun where thedate > getdate()rn第二个thdate是第一个查询出来的,怎么写?
配置SQLDATASOURCE自定义WHERE 条件的时候 LIKE怎么写的?
在ASP.NET,数据库ORACLE的环境rn配置SQLDATASOURCE自定义WHERE 条件的时候 LIKE怎么写的?下面的格式老提示rn[code=C#]rnrnrn if (txtDescription.Text != "")rn rn sdsSrhCases.SelectParameters.Add("Description", txtDescription.Text);rn sqlWhere += " AND Description like ('%' + :Description + '%')";rn rn rnrn sdsSrhCases.SelectCommand += sqlWhere;rn gvSrhCaseRec.DataBind();[/code]rnrn[color=#FF0000]+ $exception "ORA-01722: 无效数字\n" System.Exception System.Data.OracleClient.OracleExceptionrn+ this ASP.memberpages_operm_case_srhcaserec_aspx MemberPages_OperM_Case_SrhCaseRec ASP.memberpages_operm_case_srhcaserec_aspxrn+ sender Text = "故障查找" object System.Web.UI.WebControls.Buttonrn+ e System.EventArgs System.EventArgsrn sqlWhere " WHERE DEPTID = :DeptId AND Description like ('%' + :Description + '%') ORDER BY ACTDATE DESC" string[/color]
sql语句里的where条件为变量请问怎么写
请教大家where显程序变量时怎么引用的rnsql="varie='儿童音乐'"rnsqlpop="select * from music where "&sqlrn如上写调试时提示说where子句语法错误rn我又听人说这样子写,rnsqlpop="select * from music where ("&sql&")"rn可是又提示说()里的操作符丢失,请问大家到底应该怎么写rnrn
有选择性的WHERE条件怎么写,请高手赐教!!!!!
有如下两个表rntable_1rncolA,colB,colC....rnrntable_pararnp1,p2,p3...rnrn我想检索table_1的数据,rn条件是当(select top 1 p1 from table_para)不为NULL时,rntable_1.colA >= (select top 1 p1 from table_para);rn当(select top 1 p2 from table_para)不为NULL时,rntable_1.colA <= (select top 1 p2 from table_para);rn当(select top 1 p3 from table_para)不为NULL时,rntable_1.colB = (select top 1 p3 from table_para);rnrn请问,rnselect table_1.* from table_1 where ...rn中的where条件应该怎么写?rn请高手赐教。
请教,数值型变量在where条件里怎么写?
请教一个问题,在构造一个数值型 where条件时不会处理了。rnrneg:rninteger li_id//商品IDrnstring ls_sql//构造sql语句rnrnrnli_id = dw_2.object.cid[row]rnls_sql = dw_1.getsqlselect()rnls_sql = ls_sql + " WHERE COMID= ????rn......rnrnls_sql 怎么写啊?rnrn谢谢帮助
hive join 多条件on后,where后面怎么写
1、建表 (1)、 create external table if not exists t_xiaoming_test_for_dau( uid string , platform int , ...
◎◎◎where条件里如果是时间的,应该怎么写,谢谢◎◎◎
我用的access,其中有个字段为begin_time时间,使用的格式是"常规日期"rn内有两条数据,如下rn2002-5-19 12:12:12rn2002-2-1 12:12:12rn现在执行,我需要的效果是只列出5。1后的记录,那也就是应该只显示第一条,为什么他现在是全部显示呢rn下面的sql句子是access的向导自动生成的,居然也不对,请问为什么?谢谢rn我原先在日期两旁放的''号,但是说语法错误,同样的语法在sqlserver里通过,并且也符合条件,为什么access这么麻烦rnSELECT dail.begin_time rnFROM dailrnWHERE ("begin_time">#5/1/2002 0:0:0#)
where条件不固定的存储过程应该怎么写
例如:我存储过程中的最后的查询语句是这样的,select name,age,sex from talbe1 这个条件我应该怎么写呢,因为前台界面的用户会自己选择用什么作为条件查询,难道 where name=@name or age=@age or sex=@sex. 这样的话我岂不是要前面定义的所有参数都要有值传进来吗,这样太麻烦了,简单问题在线等待,谢谢!
sql的where的一个条件属于一个集合 该怎么写?
我在构建where子句的时候 对其中一个字段允许有多个值 该怎么写这个句子呢?rn具体情况是 a 的可用值是1,2,3,4 用户可以选择多个值rn比如用户选了 1,3,4rn我现在的where子句要检索出a=1或者a=3或者a=4且a!=2的所有结果rn注意where子句除了条件a 还有其他条件b,c,d....rn这个句子应该怎么写好?
这种类似sql语句的where条件应该怎么写
表中有个字段为:id,sql语句大致要表达的意思是:select * from table wherernlength(id) = 6,当然了,这样写肯定会报错,那我该怎么写那?
SQL的Where子句中关于时间的条件怎么写?
比如说我要查询“事故时间”在2000年1月一日以后的那是where 事故时间>='2000-01-01'?多谢了
查看5分钟前的sql WHERE条件要怎么写
表里有个字段是时间字段TIMErn查询半个小时前的数据,5分钟前端数据,前一天9点的数据,SQL语句的WHERE条件要怎么写!rnrnrnWHERE TIME>SYSDATE-..........rnrn
请问MDX语句的where子句的条件应该怎么写?
刚刚接触多维数据集,要用到mdx语句
请教,条件是字段没有值的WHERE字句怎么写?
年龄字段,string类型rnWHERE 年龄 = "" //这样写不行,应该怎么写呢?
帮忙看看这个查询语句的where条件应该怎么写?
rn 请选择rn 选择题rn 填空题rnrnrn 请选择rn 第一章——概述rn 第二章——算法rn 第三章——数据类型、运算符与表达式rn 第四章——顺序程序设计rn 第五章——选择结构程序设计rn 第六章——循环控制rn 第七章——数组rn 第八章——函数rn 第九章——预处理命令rn 第十章——指针rn 第十一章——结构体与共用体rn 第十二章——位运算rn 第十三章——文件rn 综合题rnrnrn 请选择rn 简单rn 中等rn 较难rnrnrnrn这三个下拉列表和一个文本框,只要有一个有内容就可以查询,有两个以上要组合查询。这样的查询方法,where条件有什么好的方法去写?rnrn谢谢大家,我写的方法太复杂,分若干种情况。
sql语句where后面的条件该怎么写?
定义一个CString变量str,rnsql语句查询条件这么写好像不对:rnCRecordSet m_set;rnm_set.m_strFilter="word_name=str";rn该怎么写阿??rnrn请赐教!!rn
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件