-
SQLServer允许重复空字段不空字段值唯一
表结构如下面代码创建复制代码代码如下:CREATETABLEtest_tb(TestIdintnotnullidentity(1,1)primarykey,Captionnvarchar(100)null);GO解决方案1:对于这个问题,大家的第一个想法可能是:在Caption这个字段上面加一个唯一键不就可以了吗?好,我们按着这个思路做下去,先创建唯一索引。复制代码代码如下:CREATEUNIQUENONCLUSTEREDINDEXun_test_tbONtest_tb(Caption)GO索引创建好了,我们来测试下效果复制代码代码如下:INSERTINTOtest_tb(Caption)VALUES(null)GOINSERTINTOtest_tb(Caption)VALUES(null)GO运行之后我们会收到下面的错误信息:以下为引用的内容:消息2601,级别14,状态1,第1行不能在具有唯一索引'un_test_tb'的对象'dbo.test_tb'中插入重复键的行...
数据库操作教程 2022-09-23 20:23:51 -
SQLServer中withas使用介绍
一.WITHAS的含义 WITHAS短语,也叫做子查询部分(subqueryfactoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNIONALL的不同部分,作为提供数据的部分...
数据库操作教程 2022-09-23 20:22:19 -
SQLServer中汇总功能的使用GROUPING,ROLLUP和CUBE
第一次看到这样的SQL语句,看不懂,其中用到了下面的不常用的聚集函数:GROUPING用于汇总数据用的运算符:ROLLUPSELECT CASE GROUPING(o.customerid) WHEN 0 THEN o.customerid ELSE '(Total)' END AS AllCustomersSummary, CASE GROUPING(od.orderid) WHEN 0 THEN od.orderid ELSE -1 END AS IndividualCustomerSummary, SUM(od.quantity*od.unitprice) AS price FROM Orders o, [Order Details] od WHERE&...
数据库操作教程 2022-09-23 20:21:35 -
T-SQL中使用正则表达式函数
首先,我们在VSTS中创建一DatabaseProject,增一个class,实现下面的一个方法:复制代码代码如下:///<summary>///Regstheexmatch.///</summary>///<paramname="inputValue">Theinputvalue.</param>///<paramname="regexPattern">Theregexpattern.</param>///<remarks>Author:PetterLiuhttp://wintersun.cnblogs.com</remarks>///<returns>1match,0notmatch</returns>[SqlFunction]publicstaticboolRegExMatch(stringinputValue,stringregexPattern){//Anynulls-wecan'tmatch,returnfalseif(string.IsNullOrEmp...
数据库操作教程 2022-09-23 20:21:33 -
sql中casewhen语法使用方法
没有,用casewhen来代替就行了.例如,下面的语句显示中文年月复制代码代码如下:selectgetdate()as日期,casemonth(getdate())when11then'十一'when12then'十二'elsesubstring('一二三四五六七八九十',month(getdate()),1)end+'月'as月份CASE可能是SQL中被误用最多的关键字之一。虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法...
数据库操作教程 2022-09-23 20:21:02 -
在sql查询中使用表变量
复制代码代码如下:USE[DAF_DB]GO/******Object:StoredProcedure[dbo].[PROG_WORKTASK_List]ScriptDate:06/14/201021:14:43******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--[PROG_WORKTASK_List]62,0,'','',0,0,'',''--=============================================--Author:guo...
数据库操作教程 2022-09-23 20:20:39 -
sql中varchar和nvarchar的区别与使用方法
问:sql server中的varchar和Nvarchar有什么区别啊,varchar好像是一个英文和一个汉字都站两个字节,而Nvarchar则是一个英文占一个字节,汉字占两个字节。可是这个对asp程序有什么影响?答:varchar(n)长度为 n 个字节的可变长度且非 Unicode 的字符数据...
数据库操作教程 2022-09-23 20:17:50 -
mssql@@ERROR使用
mssql错误日志文件存放位置:C:ProgramFilesMicrosoftSQLServerMSSQLLOG用记事本查看@@ERROR返回一个整数0为正常sysmessages存放的错误信息系统表(master)USEmasterselect*fromsysmessageswhereerror=错误编号可查询错误的原因触发器中可用RAISERROR(50009,16,10)抛出错误,其中50009就是错误编号,也可以是错误信息说明1610具体的行和列可自已定也可定义自定义的消息将自定义的消息添加到sysmessages。USEmasterEXECsp_addmessage50001,16,N'Percentageexpectsavaluebetween20and100.Pleasereexecutewithamoreappropriatevalue.','us_english',false,replaceEXECsp_addmessage50001,16,'员工代码没有找到','简体中文',false,replace5000116必须一致先添加us_english版的,再添加'简体...
数据库操作教程 2022-09-23 20:16:10 -
SQLCONVERT转化函数使用方法小结
格式:CONVERT(data_type,expression[,style])说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到.例子:SELECTCONVERT(varchar(30),getdate(),101)now结果为:now---------------------------------------|09/15/2001Style数字在转换时间时的含义如下:复制代码代码如下:Style(2位表示年份)|Style(4位表示年份)|输入输出格式0|100|monddyyyyhh:miAM(或PM)1|101美国|mm/dd/yy2|102ANSI|yy-mm-dd3|103英法|dd/mm/yy4|104德国|dd.mm.yy5|105意大利|dd-mm-yy6|106|ddmonyy7|107|mondd,yy8|108|hh:mm:ss9|109|monddyyyyhh:mi:ss:mmmmAM(或PM)10|110美国|mm-dd-yy11|111日本|...
数据库操作教程 2022-09-23 20:14:57 -
BCP大容量数据导入导出工具使用步骤
主要讲四个示例的使用:导出(out),导入(in),查询导出(queryout),导出格式化(-f)文件。示例1:导出示例数据库AdventureWorks整个表currency或视图,使用SQL连接复制代码代码如下:bcpAdventureWorks.sales.currencyoutc:currency1.txt-c-U"sa"-P"password"--使用SQL连接示例2:同上,使用信任连接复制代码代码如下:bcpAdventureWorks.sales.currencyoutc:currency1.txt-c-T--使用信任连接示例3:导入数据复制代码代码如下:bcpAdventureWorks.sales.currency1inc:currency1.txt-c-T或导入指定数据行10-13行复制代码代码如下:bcpAdventureWorks.sales.currency1inc:currency1.txt-c-F10-L13-T示例4:使用查询导出复制代码代码如下:bcp"SELECTTOP20*FROMAdventureWorks.sales.currency"que...
数据库操作教程 2022-09-23 20:14:35 -
使用SQL实现车流量的计算的示例代码
目录卡口转换率1、查出每个地区下每个路段下的车流量2、通过错位连接获取每辆车的行车记录3、获取行车过程中的车辆数4、获取每个卡口的总车辆数5、求出卡口之间的转换率卡口转换率将数据导入hive,通过SparkSql编写sql,实现不同业务的数据计算实现,主要讲述车辆卡口转换率,卡口转化率:主要计算不同卡口下车辆之间的流向,求出之间的转换率。1、查出每个地区下每个路段下的车流量selectcar,monitor_id,action_time,ROW_NUMBER()OVER(PARTITIONbycarORDERbyaction_time)asn1FROMtraffic.hive_flow_action此结果做为表1,方便后面错位连接使用2、通过错位连接获取每辆车的行车记录通过表1的结果,与自身进行错位链接,并以车牌为分区,拼接经过卡口的过程(selectt1.car,t1.monitor_id,concat(t1.monitor_id,"->",t2.monitor_id)aswayfrom(selectcar,monitor_id,action_time,ROW_NUMBER()...
数据库操作教程 2022-09-23 18:25:40 -
SQL中的开窗函数详解可代替聚合函数使用
在没学习开窗函数之前,我们都知道,用了分组之后,查询字段就只能是分组字段和聚合的字段,这带来了极大的不方便,有时我们查询时需要分组,又需要查询不分组的字段,每次都要又到子查询,这样显得sql语句复杂难懂,给维护代码的人带来很大的痛苦,然而开窗函数出现了,曙光也来临了。如果要想更具体了解开窗函数,请看书《程序员的SQL金典》,开窗函数在mysql不能使用...
数据库操作教程 2022-09-23 18:25:37