SQL查询中有错行怎么办

黄盛彬 2019-12-21 23:53:00

推荐回答

比如:printsubstring''abc'',1,-1printsubstring''abc'',1,0printsubstring''abc'',1,1printsubstring''abc'',1,2--返回结果服务器:消息536,级别16,状态3,行1向substring函数传递了无效的length参数。aab双击红色的错误信息就可以到错误的行。substring的长度不能是负值改正。
黎琼锋2019-12-22 00:06:14

提示您:回答为网友贡献,仅供参考。

其他回答

  • 凡是查询经常涉及第几行的问题,最好表中有个自增列作为序号,如果该序号列叫rownum,那么:select*fromtableAwhererownumbetween31and40如果确实没有序号列和不可能修改表,例如按id列排序,只能:selecttop10*fromselecttop40*fromtableAorderbyidtborderbyiddesc。
    边吉才2019-12-22 00:18:35
  • select*fromaccuontwhereVIP=1//上面的1是在你表中的类型为数字类型的时候select*fromaccuontwhereVIP=''1''//上面的1是在你表中的类型为非数字类型的时候第一个:查询下拉框的选项selecta.Name,a.IDformTBMenuawherea.IsUsed=1查询Name和ID:Name为显示文字,ID用于在选择这个选项后根据ID值进行下一步的查询在你后台执行SQL的时候返回一个dateset然后用combobox的datasuoce绑定,怎么绑需要自己找例子,很好的学习过程。第二个:根据选择的菜单查询需要的信息select*fromInfomationsawherea.MenuID=ID选择下拉框选项对应的ID值在下拉框中选择“主食”,点击查询按钮,肯定是要查询和主食相关的数据,那就通过主食对应的ID去数据库对应的关联表中查询对应的信息。这个地方你没有描述清楚你想实现的效果所以,根据你在上面补充的内容推测出的这些东西。
    齐晓彤2019-12-21 23:54:46

相关问答

本文主要分析了in和exists的区别与执行效率的问题:in可以分为三类:1、形如select*fromt1wheref1in''a'',''b'',应该和以下两种比较效率。select*fromt1wheref1=''a''orf1=''b''或者select*fromt1wheref1=''a''unionallselect*fromt1f1=''b''你可能指的不是这一类,这里不做讨论。2、形如select*fromt1wheref1inselectf1fromt2wheret2.fx=''x'',其中子查询的where里的条件不受外层查询的影响,这类查询一般情况下,自动优化会转成exist语句,也就是效率和exist一样。3、形如select*fromt1wheref1inselectf1fromt2wheret2.fx=t1.fx,其中子查询的where里的条件受外层查询的影响,这类查询的效率要看相关条件涉及的字段的索引情况和数据量多少,一般认为效率不如exists。除了第一类in语句都是可以转化成exists语句的,一般编程习惯应该是用exists而不用in.A,B两个表,1当只显示一个表的数据如A,关系条件只一个如ID时,使用IN更快:select*fromAwhereidinselectidfromB2当只显示一个表的数据如A,关系条件不只一个如ID,col1时,使用IN就不方便了,可以使用EXISTS:select*fromAwhereexistsselect1fromBwhereid=A.idandcol1=A.col13当只显示两个表的数据时,使用IN,EXISTS都不合适,要使用连接:select*fromAleftjoinBonid=A.id所以使用何种方式,要根据要求来定。这是一般情况下做的测试:测试结果:setstatisticsioonselect*fromsysobjectswhereexistsselect1fromsyscolumnswhereid=syscolumns.idselect*fromsysobjectswhereidinselectidfromsyscolumnssetstatisticsiooff47行受影响表''syscolpars''。扫描计数1,逻辑读取3次,物理读取0次,预读2次,lob逻辑读取0次,lob物理读取0次,lob预读0次。表''sysschobjs''。扫描计数1,逻辑读取3次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。1行受影响44行受影响表''syscolpars''。扫描计数47,逻辑读取97次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。表''sysschobjs''。扫描计数1,逻辑读取3次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。1行受影响setstatisticsioonselect*fromsyscolumnswhereexistsselect1fromsysobjectswhereid=syscolumns.idselect*fromsyscolumnswhereidinselectidfromsysobjectssetstatisticsiooff419行受影响表''syscolpars''。扫描计数1,逻辑读取10次,物理读取0次,预读15次,lob逻辑读取0次,lob物理读取0次,lob预读0次。表''sysschobjs''。扫描计数1,逻辑读取3次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。1行受影响419行受影响表''syscolpars''。扫描计数1,逻辑读取10次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。表''sysschobjs''。扫描计数1,逻辑读取3次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。1行受影响测试结果总体来讲exists比in的效率高:效率:条件因素的索引是非常关键的把syscolumns作为条件:syscolumns数据大于sysobjects用in扫描计数47,逻辑读取97次,用exists扫描计数1,逻辑读取3次把sysobjects作为条件:sysobjects的数据少于syscolumnsexists比in多预读15次。