- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章ASP数据库编程SQL常用技巧由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
一.怎样删除一个表中某个字段重复的列呀,举个例子 。
表[table1] 。
idname 。
1aa 。
2bb 。
3cc 。
1aa 。
2bb 。
3cc 。
我想最后的表是这样的 。
idname 。
1aa 。
2bb 。
3cc 。
回答
将记录存到临时表#t中,重复的记录只存一条,然后将临时表#t中的记录再存回原表中,注意“selectdistinctid,class,name”要包含你需要的所有字段,否则有些字段就被删掉了.
在查询管理器里执行下面代码
SELECTDISTINCTid,,name 。
INTO#t 。
FROMtable1DELETEtable1 。
INSERT 。
INTOtable1 。
SELECT* 。
FROM#t 。
二.找出既会VB又会PHP的人 。
表是这样的:
ID员工技能 。
11VB 。
21PHP 。
31ASP 。
42PHP 。
53ASP 。
64VB 。
74ASP 。
要从这张表中找出既会VB又会PHP的人,SQL该怎么写啊?
回答
SELECT员工FROM[Table]WHERE员工IN(SELECT员工FROM[Table]WHERE技能='VB')AND技能='PHP' 。
三.数据库合并问题 。
access里的两个表,想让两个表的内容合并 。
表[a]结构如下
[id]编号自动编号 。
[name]名称文本 。
[price]价格数字 。
[guige]规格文本 。
[changjia]生产厂家文本 。
[baozhuang]包装文本 。
[danwei]单位文本 。
共有900条记录,除了id和name字段,其他均可以为空 。
表[b]结构如下
[id]编号自动编号 。
[name]名称文本 。
[price]价格数字 。
[changjia]生产厂家文本 。
[danwei]单位文本 。
[xingzhi]性质文本 。
共有800条记录,除了id和name字段,比表[a]少几个字段,但还多一个[xingzhi]的字符安其它均可以为空 。
现在想生成一个新表[c],结构如下,而且内容是两个表的内容之和.
[id]编号自动编号 。
[name]名称文本 。
[price]价格数字 。
[guige]规格文本 。
[changjia]生产厂家文本 。
[baozhuang]包装文本 。
[danwei]单位文本 。
[xingzhi]性质文本 。
用sql语句也可以,手工操作也好,xml也好,别管怎么着吧,怎么实现呀,哥们要郁闷坏了,真要让我们再输入800条记录,我就挂了.
回答
1.这样 。
insertintoc(id,name,.....) 。
selectid,name,..... 。
froma 。
insertintoc(id,name,.....) 。
selectmax(id)+1,name,..... 。
fromb 。
2.更正:
如果直接在查询分析器里执行:
insertintoc(name,.....) 。
selectname,..... 。
froma 。
insertintoc(name,.....) 。
selectname,..... 。
fromb 。
3.用union方法 。
insertinto[c]([id],编号,自动编号) 。
select[id],编号,自动编号from[a] 。
union 。
select[id],编号,自动编号from[b] 。
4.asp的解决办法 。
<%'循环检测a表 。
Setrs=Server.CreateObect("ADODB.RECORDSET") 。
rs.open"select*fromaorderbyid",conn,1,1 。
Dowhilenotrs.eof 。
CallactAdd(rs("name"))'调用像b表添加内容的函数.
rs.MoveNext 。
Loop 。
rs.Close 。
Setrs=Nothing 。
SubactAdd(txt) 。
Dimts,sql 。
sql="insertintob(name)values('"&txt&"')" 。
Setts=Conn.Execute(sql) 。
ts.Close 。
Setts=Nothing 。
endSub 。
%> 。
5.asp的解决办法 。
<% 。
dimarr_temp1,arr_temp2,arr_data 。
setrs=conn.execute("selectid,name,price,guige,changjia,baozhuang,danweifroma") 。
arr_temp1=rs.getrows 。
rs.close 。
setrs=nothing 。
setrs=conn.execute("selectid,name,price,guige,changjia,danwei,xingzhifromb") 。
arr_temp2=rs.getrows 。
rs.close 。
setrs=nothing 。
rem开始处理 。
redimarr_data(ubound(arr_temp1,2)+ubound(arr_temp2,2),7) 。
rem把两个数组的内容复制进来 。
这一部分自己写了做两个循环 。
然后再存进数据库 。
%> 。
最后转一些经典的SQL语句
1.蛙蛙推荐:一些精妙的SQL语句 。
说明:复制表(只复制结构,源表名:a新表名:b) 。
SQL:select*intobfromawhere1<>1 。
说明:拷贝表(拷贝数据,源表名:a目标表名:b) 。
SQL:insertintob(a,b,c)selectd,e,ffromb,
说明:显示文章、提交人和最后回复时间 。
SQL:selecta.title,a.username,b.adddatefromtablea,(selectmax(adddate)adddatefromtablewheretable.title=a.title)b 。
说明:外连接查询(表名1:a表名2:b) 。
SQL:selecta.a,a.b,a.c,b.c,b.d,b.ffromaLEFTOUTJOINbONa.a=b.c 。
说明:日程安排提前五分钟提醒 。
SQL:select*from日程安排wheredatediff('minute',f开始时间,getdate())>5 。
说明:两张关联表,删除主表中已经在副表中没有的信息 。
SQL
deletefrominfowherenotexists(select*frominfobzwhereinfo.infid=infobz.infid) 。
说明:-- 。
SQL
SELECTA.NUM,A.NAME,B.UPD_DATE,B.PREV_UPD_DATE 。
FROMTABLE1.
(SELECTX.NUM,X.UPD_DATE,Y.UPD_DATEPREV_UPD_DATE 。
FROM(SELECTNUM,UPD_DATE,INBOUND_QTY,STOCK_ONHAND 。
FROMTABLE2 。
WHERETO_CHAR(UPD_DATE,'YYYY/MM')=TO_CHAR(SYSDATE,'YYYY/MM'))X.
(SELECTNUM,UPD_DATE,STOCK_ONHAND 。
FROMTABLE2 。
WHERETO_CHAR(UPD_DATE,'YYYY/MM')= 。
TO_CHAR(TO_DATE(TO_CHAR(SYSDATE,'YYYY/MM')||'/01','YYYY/MM/DD')-1,'YYYY/MM'))Y.
WHEREX.NUM=Y.NUM(+) 。
ANDX.INBOUND_QTY+NVL(Y.STOCK_ONHAND,0)<>X.STOCK_ONHAND)B 。
WHEREA.NUM=B.NUM 。
说明:-- 。
SQL
select*fromstudentinfowherenotexists(select*fromstudentwherestudentinfo.id=student.id)and系名称='"&strdepartmentname&"'and专业名称='"&strprofessionname&"'orderby性别,生源地,高考总成绩 。
说明:
从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源) 。
SQL
SELECTa.userper,a.tel,a.standfee,TO_CHAR(a.telfeedate,'yyyy')AStelyear.
SUM(decode(TO_CHAR(a.telfeedate,'mm'),'01',a.factration))ASJAN.
SUM(decode(TO_CHAR(a.telfeedate,'mm'),'02',a.factration))ASFRI.
SUM(decode(TO_CHAR(a.telfeedate,'mm'),'03',a.factration))ASMAR.
SUM(decode(TO_CHAR(a.telfeedate,'mm'),'04',a.factration))ASAPR.
SUM(decode(TO_CHAR(a.telfeedate,'mm'),'05',a.factration))ASMAY.
SUM(decode(TO_CHAR(a.telfeedate,'mm'),'06',a.factration))ASJUE.
SUM(decode(TO_CHAR(a.telfeedate,'mm'),'07',a.factration))ASJUL.
SUM(decode(TO_CHAR(a.telfeedate,'mm'),'08',a.factration))ASAGU.
SUM(decode(TO_CHAR(a.telfeedate,'mm'),'09',a.factration))ASSEP.
SUM(decode(TO_CHAR(a.telfeedate,'mm'),'10',a.factration))ASOCT.
SUM(decode(TO_CHAR(a.telfeedate,'mm'),'11',a.factration))ASNOV.
SUM(decode(TO_CHAR(a.telfeedate,'mm'),'12',a.factration))ASDEC 。
FROM(SELECTa.userper,a.tel,a.standfee,b.telfeedate,b.factration 。
FROMTELFEESTANDa,TELFEEb 。
WHEREa.tel=b.telfax)a 。
GROUPBYa.userper,a.tel,a.standfee,TO_CHAR(a.telfeedate,'yyyy') 。
说明:四表联查问题:
SQL:select*fromaleftinnerjoinbona.a=b.brightinnerjoincona.a=c.cinnerjoindona.a=d.dwhere..... 。
说明:得到表中最小的未使用的ID号 。
SQL
SELECT(CASEWHENEXISTS(SELECT*FROMHandlebWHEREb.HandleID=1)THENMIN(HandleID)+1ELSE1END)asHandleID 。
FROMHandle 。
WHERENOTHandleIDIN(SELECTa.HandleID-1FROMHandlea) 。
2.删除重复数据 。
1、具有主键的情况 。
a.具有唯一性的字段id(为唯一主键) 。
deletetable 。
whereidnotin 。
( 。
selectmax(id)fromtablegroupbycol1,col2,col3... 。
) 。
groupby子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同.
b.具有联合主键 。
假设col1+','+col2+','...col5为联合主键 。
select*fromtablewherecol1+','+col2+','...col5in( 。
selectmax(col1+','+col2+','...col5)fromtable 。
wherehavingcount(*)>1 。
groupbycol1,col2,col3,col4 。
) 。
groupby子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同.
c:判断所有的字段 。
select*into#aafromtablegroupbyid1,id2,.... 。
deletetable 。
insertintotable 。
select*from#aa 。
2、没有主键的情况 。
a:用临时表实现 。
selectidentity(int,1,1)asid,*into#tempfromta 。
delete#temp 。
whereidnotin 。
( 。
selectmax(id)from#groupbycol1,col2,col3... 。
) 。
deletetableta 。
insetintota(...) 。
select.....from#temp 。
b:用改变表结构(加一个唯一字段)来实现 。
altertable表addnewfieldintidentity(1,1) 。
delete表 。
wherenewfieldnotin 。
( 。
selectmin(newfield)from表groupby除newfield外的所有字段 。
) 。
altertable表dropcolumnnewfield 。
最后此篇关于ASP数据库编程SQL常用技巧的文章就讲到这里了,如果你想了解更多关于ASP数据库编程SQL常用技巧的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我试图对 ASP.Net MVC 有一个高层次的理解,我开始意识到它看起来很像原始的 ASP 脚本。过去,我们将“模型”/业务逻辑代码组织到 VBScript 类或 VB COM 组件中。 当然,现在
我已经搜索了一段时间,但似乎找不到答案。 我想在我的旋转木马中显示一个计数器,左边是当前项目(工作),左边是项目总数。 我的代码:
. 最佳答案 Scott Gu 称这些为代码块。这就是我的看法。 http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax
我有一个使用 Visual Studio 2010/.net 4/VB 制作的网站。 我真的很喜欢我发现的 FAQ 系统的布局,因为它很简单,但它是经典的 asp。所以,显然,我不能包括我的母版页布局
好吧,对于你们许多人来说,这个问题可能有一个非常明显的答案,但它让我难住了。 我有一个 asp.net Web 表单,上面有两个控件(嗯,不止这两个,但我们将重点关注这些) - 第一个是 asp:dr
当我将 ASP.NET 复选框控件设置为 asp.net 更新面板的异步回发触发器时,EventName 属性是什么? 最佳答案 我相信它是 CheckedChanged。 关于asp.net - a
我有一个用经典 asp 编写的(巨大的)网站。现在我必须切换到 vb.net (razor)。有没有办法将这两个结合起来直到切换完成? 有没有办法让应用程序与经典的 asp 和 vb.net 一起工作
I am creating a products page, where the user selects an option in a radiobuttonlist for example, an
我最近将一个经典的 ASP 应用程序转换为 ASP.NET 3.5,但我觉得我的经典 ASP 版本要快一些(我不知道可能买家会后悔)。 所以你们能帮我解决这个问题吗,让我知道哪个更快,asp、asp.
从本周开始,我被要求开始学习如何使用 ASP 开发网站。我通过 XNA 对 C# 有一定的经验,所以这部分对我来说并不是什么麻烦。 我一直在关注Music Store Tutorial这需要我设置一个
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我想将一些表单变量发布到经典 ASP 页面中。我不想改变经典的 ASP 页面,因为需要完成大量的工作,以及消耗它们的页面数量。 经典的 ASP 页面需要将表单变量 Username 和 Userpas
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
在某种程度上,这可能是一个异端问题。我们有一个大型站点,其中许多页面仍在ASP中。通常,并没有真正动态的,而是包括(通过SSI或Server.Execute)定期重新生成的HTML块。看起来好像是一个
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我有一个遗留的 ASP 应用程序——在不久的某个时候——需要迁移到 ASP.Net 2.0(以与也在 2.0 中的其他应用程序兼容)。 对于这类事情是否有最佳实践,即作为第一步将当前 html、vbs
我目前在一家公司工作,该公司使用 ASP.NET Webforms 和旧 ASP 页面的组合进行 Web 开发。这对于他们当前的项目来说效果很好,但我想说服/建议他们切换到 ASP.NET MVC,因
我有一个经典的 asp 应用程序。我想将该页面的竞赛表格发布到 Asp.Net 表格。原因是我想在进入数据库之前使用我在 Asp.Net 页面中内置的大量逻辑进行验证,而我对 asp 不太了解。更不用
我知道在 ASP.NET MVC 中,您可以拥有移动 View 并执行类似 Index.mobile.cshtml 的操作。和 _Layout.mobile.cshtml并且服务器知道将这些 View
我需要从一些服务器端 c#.net 代码中调用经典 asp 页面上的 VBscript 函数 - 有谁知道一种干净的方法来做到这一点?在 .net 中重写函数不是一种选择。 我会再解释一下这个问题..
我是一名优秀的程序员,十分优秀!