-
SQL年龄计算的两种方法实例
目录第一种方法:第二种方法:总结第一种方法:用DATEDIFF函数,DATEDIFF(YEAR,beginDate,endDate)。测试语句:DECLARE@birthdayDateDATEDECLARE@endDateDATEDECLARE@ageINTSET@birthdayDate='2003-08-08'SET@endDate='2008-07-08'SET@age=DATEDIFF(YEAR,@birthdayDate,@endDate)SELECT@ageAS年龄执行结果:这种方法计算出的年龄,是个大概年龄,是“年”意义下的年龄,就是普罗大众对年龄的理解下的年龄...
数据库操作教程 2022-09-23 18:19:35 -
执牛耳者丨天才学霸们居然是这样工作的
空空如也的工位,姗姗来迟的员工,还有喜欢站着工作、爱穿拖鞋的同事......在这个充满着自由、多元氛围的办公室,一切以结果为驱动,这就是上海树图区块链研究院里天才学霸们的工作日常。当问起上海树图区块链研究院首席技术官伍鸣,怎么管理天才的时候,他坦言道管理天才最好的方法或许就是不管...
区块链 2022-09-23 18:13:43 -
SQLServer行转列实现思路记录
最近面试遇到了一道面试题,顿时有点迷糊,只说出了思路,后来百度了一下,整理了一下思路,于是记录下来,方便以后学习。(面试题请参见附件)相关的数据表:1.Score表 2.[User]表 SQL语句如下:--方法一:静态SQL复制代码代码如下:SELECT*FROM(SELECTUID,Name,Score,ScoreNameFROMScore,[User]WHEREScore.UID=[User].ID)ASSourceTablePIVOT(AVG(Score)FORScoreNameIN([英语],[数学]))ASa--方法二:动态SQL复制代码代码如下:DECLARE@sNVARCHAR(4000)SELECT@s=ISNULL(@s+',','')+QUOTENAME(ScoreName)FROM(selectdistinctScoreNamefromScore)asA---列名不要重复Declare@sqlNVARCHAR(4000)SET@sql='selectr.*from(selectUID,Name,ScoreName,ScorefromScore,...
数据库操作教程 2022-09-23 18:00:43 -
.net+mssql制作抽奖程序思路及源码
抽奖程序:思路整理,无非就是点一个按钮,然后一个图片旋转一会就出来个结果就行了,可这个程序的要求不是这样的,是需要从数据库中随机抽取用户,根据数据库中指定的等级和人数,一键全部抽出来结果就行了。同时需要存储到数据库...
数据库操作教程 2022-09-23 17:58:28 -
SQLServer两种分页的存储过程使用介绍
由于现在很多的企业招聘的笔试都会让来招聘的写一个分页的存储过程,有的企业甚至要求应聘者用两种方式实现分页,如果没有在实际项目中使用过分页,那么很多的应聘者都会出现一定的问题,下面介绍两种分页的方法。一、以学生表为例,在数据库中有一个Student表,字段有StudentNo,,LoginPwd,StudentName,Sex,ClassId,Phone,Address,BornDate,Email,isDel要求:查询学生的信息,每页显示5条记录二、第一种方式分页:利用子查询notin例如:第一页selecttop5*fromStudent第二页:查询前10条中不在前5条的记录,那么就是6-10,也就是第二页selecttop5*fromStudentwhereStudentNonotin(selecttop10StudentnofromStudent)同理可以得到第三页、、、、、、、这种方式相信大家都能明白,这种分页的存储过程写法就不多做介绍,重点介绍下面那种分页方法...
数据库操作教程 2022-09-23 17:46:34 -
MySql查询不区分大小写解决方案(两种)
当我们输入不管大小写都能查询到数据,例如:输入aaa或者aaA,AAA都能查询同样的结果,说明查询条件对大小写不敏感。解决方案一:于是怀疑Mysql的问题...
数据库操作教程 2022-09-23 17:44:44 -
sqlserver创建临时表的两种写法和删除临时表
--创建、删除临时表--第一种方式createtable#tmp(namevarchar(255),idint)--第二种方式selectcount(id)asstoryNum,sum(convert(numeric(10,2),casewhenisnumeric(code)=1thencodeelse0end))ascodeNum,sum((casewhenisnumeric(realcode)=1thenconvert(numeric(10,2),realcode)else0.0end))asrealcodeNum,tdtname,cycle,jiracomponent,jirastatename,qualityvalue,storycodelltinto#tmpfromIKNOW_STORY_U2000V1R7C00groupbytdtname,cycle,jiracomponent,jirastatename,qualityvalue,storycodellt--查询临时表select*from#tmp--删除临时表ifobject_id('tempdb..#tmp')isno...
数据库操作教程 2022-09-23 17:41:35 -
执行一条sql语句update多条记录实现思路
通常情况下,我们会使用以下SQL语句来更新字段值:复制代码代码如下:UPDATEmytableSETmyfield='value'WHEREother_field='other_value';但是,如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?举个例子,我的博客有三个分类目录(免费资源、教程指南、橱窗展示),这些分类目录的信息存储在数据库表categories中,并且设置了显示顺序字段display_order,每个分类占一行记录。如果我想重新编排这些分类目录的顺序,例如改成(教程指南、橱窗展示、免费资源),这时就需要更新categories表相应行的display_order字段,这就涉及到更新多行记录的问题了,刚开始你可能会想到使用循环执行多条UPDATE语句的方式,就像以下的php程序示例:复制代码代码如下:foreach($display_orderas$id=>$ordinal){$sql="UPDATEcategoriesSETdisplay_order=$ordinalWHEREid=$id";mysql_query($sql);}这种方法...
数据库操作教程 2022-09-23 17:26:24 -
关于sqlserver批量插入和更新的两种解决方案
复制代码代码如下:.游标方式1DECLARE@DataNVARCHAR(max) SET@Data='1,tanw;2,keenboy' --Id,Name DECLARE@dataItemNVARCHAR(100) DECLAREdata_cursorCURSORFOR(SELECT*FROMsplit(@Data,';')) OPENdata_cursor FETCHNEXTFROMdata_cursorINTO@dataItem WHILE@@FETCH_STATUS=0 BEGIN DECLARE@IdINT DECLARE@NameNVARCHAR(50) DECLAREdataItem_cursorCURSORFOR(SELECT*FROMsplit(@dataItem,',')) OPENdataItem_cursor FETCHNEXTFROMdataItem...
数据库操作教程 2022-09-23 17:18:31 -
sql动态行转列的两种方法
第一种方法:复制代码代码如下:select*from(selectUrl,case when Month=01then '1月'when Month=02then'2月'when Month=03then '3月'when Month=04then'4月'when Month=05then '5月'when Month=06then'6月'when Month=07then '7月'when Month=08then'8月'when Month=09then '9月'when Month=10then'10月'when Month=11then '11月'when Month=12then'12月' end month,Qualityfrom (selectUrl,DATENAME(M,AuditingTime)Month,SUM(Quality)Qualityfrom...
数据库操作教程 2022-09-23 17:18:26 -
sql注入数据库修复的两种实例方法
1.第一种情况是需要将指定的注入字符串全部替换掉(仅替换注入的字符串为空)复制代码代码如下:declare@delStrnvarchar(500) set@delStr='<scriptsrc=https://www.jb51.net/js/common.js></script>'--这里被注入的字段串 /****************************************/ /**********以下为操作实体************/ setnocounton declare@tableNamenvarchar(100),@columnNamenvarchar(100),@tbIDint,@iRowint,@iResultint declare@sqlnvarchar(2000) set@iResult=0 declarecurcurso...
数据库操作教程 2022-09-23 17:17:44 -
sqlserver数据库出现置疑的解决思路
先备份数据库,再用下面的办法:复制代码代码如下:USEMASTERGOSP_CONFIGURE'ALLOWUPDATES',1RECONFIGUREWITHOVERRIDEGOALTERDATABASEDatabase_NameSETEMERGENCYGOsp_dboption'Database_Name','singleuser','true'GODBCCCHECKDB('Database_Name','REPAIR_ALLOW_DATA_LOSS')GOALTERDATABASEDatabase_NameSETONLINEGOsp_configure'allowupdates',0reconfigurewithoverrideGOsp_dboption'Database_Name','singleuser','false'GO首先新建一个同名的数据库,然后再停掉sqlserver服务,用原数据库的数据文件覆盖掉这个新建的数据库文件,重启sqlserver服务。打开企业管理器,该数据库显示“置疑”,在查询分析器中执行上面的语句...
数据库操作教程 2022-09-23 17:17:15