工作中时常遇到字符串转换为拼音的需求.特别目前在各大网站平台都可以看到的基于拼音的查询功能.如果在查询中增加相应的拼音查询,就可以减少很多的因中文汉字完全输入的不便利,例如:当我要查询叫”郭德纲“人员时,直接输入"GDG"即可,这样是不是比较方便输入.          中文汉字有个特点:同字不同音 .在不同的语境或中文汉字组合时,会出现不同的读法.比如:参加会议中的”参“和中药材人参中“参”是两个不同的读音,诸如这样的中文汉字有不少的.本版块的实现也存在这样的问题.可以通过项…
SQL Server 中截取字符串常用的函数: .LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要截取最左边的字符数' ) 返回从字符串左边开始指定个数的字符 ); 返回结果:SQL_ .RIGHT ( character_expression , integer_expression ) 函数说明:RIGHT ( '源字符串' , '要截取最右边的字符数' ) 返回字符串中从右边开始指定个数的…
在SQL SERVER中获取表中的第二条数据, 思路:先根据时间逆排序取出前2条数据作为一个临时表,再按顺时排序在临时表中取出第一条数据 sql语句如下: select top 1 * from(select top 2 * from NumberLog where UserName = '管理员' order by dateTime desc ) [table] order by dateTime asc…
SQL Server 中截取字符串常用的函数: 1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要截取最左边的字符数'  ) 返回从字符串左边开始指定个数的字符  ); 返回结果:SQL_ 2.RIGHT ( character_expression , integer_expression ) 函数说明:RIGHT ( '源字符串' , '要截取最右边的字符数'  ) 返回字符串中从右边开始指…
我们如果要在sql server中,使用截取字符串的方法要怎样使用呢? sql server提供了3个常用截取字符串方法,LEFT().RIGHT().SUBSTRING() /****** Sql Server中截取字符串的常用方法 ******/ --1.LEFT()方法--- --函数说明--- --1)语法:LEFT(character,integer) --2)介绍:参数1:要截取的字符串,参数2:截取字符个数 --3)使用: --返回从字符串左边开始指定个数的字符-- ) --4)返…
前言 在操作数据库的时候经常会用到判断数据表.视图.函数/方法.存储过程是否存在,若存在,则需要删除后再重新创建.以下是MS SQL Server中的示例代码. 数据表(Table) 创建数据表的时候判断数据表是否存在,若存在则删除,会经常使用,特别是初始化的时候. --方法一 /*判断数据表是否存在,若存在则删除数据表*/ IF EXISTS (SELECT * FROM sys.objects WHERE name = 'Table_Name') DROP TABLE Table_Name;…
sql server 2008中的主外键关系获取方式: 转自:http://www.cnblogs.com/ke10/archive/2012/06/11/2544655.html SELECT OBJECT_NAME(con.constid) '关系名' ,OBJECT_NAME(sf.fkeyid) '主键表' ,fcol.name '主键' ,OBJECT_NAME(sf.rkeyid) '外键表' ,rcol.name '外键',st.name'数据类型'FROM sysforeignk…
DECLARE @days INT, @date_start DATETIME = '2016-11-01', @date_end DATETIME = '2016-11-10' SET @days = DATEDIFF(DAY, @DATE_START, @DATE_END); SELECT DAY(DATEADD(dd, number, @DATE_START)) AS 日期 FROM master.dbo.spt_values WHERE type = 'p' AND number <=…
在写代码的时候,有时候实现一个功能会有好多个方法,有时候会做一下方法的耗时对比,综合下时间复杂度与空间复杂度,写出最好的代码: 同样,在写一些SQL查询,SQL代码的时候,也希望能写出一个高效一点的查询: 下面这部分代码就可以简单分析下SQL语句的耗时情况: --清除缓存 CHECKPOINT; DBCC DROPCLEANBUFFERS; DBCC FREEPROCCACHE; DBCC FREESYSTEMCACHE ('ALL'); declare @begintime datetime,…
首先建一张测试表: )); insert into teststring values ('张三,李四,王五,马六,萧十一,皇宫'); 1.判断字符串中某字符(字符串)出现的次数,第一次出现的位置最后一次出现的位置: 查看’,’出现的次数 select LEN(name)-LEN(REPLACE(name,',','')) from teststring; 查看’,’第一次出现的位置: select CHARINDEX(',',name) from teststring; 查看’,’最后一次出现…
SCOPE_IDENTITY()函数 返回的是紧跟这个插入语句生成的自增ID, 若果前一个语句不是插入自增ID的,将返回NULL @@IDENTITY 返回全局的最有一个生成的自增ID,全局可用 create table test( id int identity ,v int ) insert into test(v)values(1) select SCOPE_IDENTITY() SELECT @@IDENTITY 结果 Note 有的地方喜欢使用 output inserted.tab_…
--常用日期转换参数: PRINT CONVERT(varchar, getdate(), 120 ) 2016-07-20 16:09:01 PRINT replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','') 20040912110608 PRINT CONVERT(varchar(12) , getdate(), 111 ) 2004/09/12 PRINT CONVERT(varch…
例如查询 2012-1-5 到 2012-11-3 之间所有的月份 declare @begin datetime,@end datetime set @begin='2012-1-5' set @end='2012-11-3' declare @months int set @months=DATEDIFF(month,@begin,@end) select convert(varchar(7),DATEADD(month,number,@begin) ,120) AS 月份 from mas…
))     ) )     )          )         ),   py          end     return @pinyin END GOSELECT dbo.fn_GetPinyin('中华人民共和国') CREATE OR REPLACE FUNCTION fn_getpy (p_str    IN VARCHAR2,                                      p_flag      NUMBER DEFAULT NULL)    R…
直接贴代码了: 用户表: SELECT s.Name,Convert(varchar(max),tbp.value) as Description FROM sysobjects s AND (tbp.Name='MS_Description' OR tbp.Name is null) WHERE s.xtype IN('U') 示例: 用户视图: SELECT s.Name,Convert(varchar(max),tbp.value) as Description FROM sysobjec…
直接贴代码了: SELECT sysobjects.name AS TableName, syscolumns.Id AS TableId, syscolumns.name AS DbColumnName, systypes.name AS DataType, syscolumns.length AS [Length], sys.extended_properties.[value] AS [ColumnDescription], syscomments.text AS DefaultValue…
相关查询(在同一个表中) 相关查询类似子查询,但是又不同于子查询:子查询中的子条件可以单独查出数据,但是相关查询的子条件不能查处数据.(可以理解成C#中for的穷举法,第一个for走一个,第二个for走一圈,在相关查询中,括号内的数据只有几个,外面的查询有全部的数据,每个数据到括号中去比较是否合适) 格式: select * from 表名1 as a where a.列名 关系表达式或逻辑运算符 ( select * from 表名1 as b where a.相关列名1 = b.相关列名1…
转自:http://www.jb51.net/article/56691.htm IF OBJECT_ID('DBO.DISTINCT_STR') IS NOT NULL DROP FUNCTION DBO.DISTINCT_STR GO --此函数操作形如["a", "b", 1,2,3,1,"a"]的数组,去重后,["b",1,2,3] --@S(原有参数), @SPLIT(分隔符), @NEW_STR(新添加字符串) )…
row_number()  ,RANK() 和  DENSE_RANK()  三个配合over()  使用排名 只是只是计算方式不一样,语法基本一样 语法: ROW_NUMBER() OVER (ORDER BY 排名的字段) 例如: select OrderAmount , row_number() over(order by OrderAmount desc) as row_number , RANK() over(order by OrderAmount desc) as RANK , D…
ALTER function [dbo].[BOSplit](@SourceSql nvarchar(max),  --要分割的字段@StrSeprate varchar(10)      --分割符)returns @temp table(value nvarchar(100))as begin    declare @i int    set @SourceSql=rtrim(ltrim(@SourceSql))    set @i=charindex(@StrSeprate,@Source…
    还是工作中遇到的需求,有时候和外部的系统对接,进行数据的核对功能,外部的系统有时候主键字段列数据类是UNIQUEIDENTIFER(GUID)类型的字符串格式,去除了GUID格式中的分隔符“-”.基于上面的原因,在数据库中可能要将这类的“GUID去格式化的字符串”转化为GUID,便于和本系统的相关联数据进行来核对.   SQL Server中的字符串转化为GUID的T-SQL代码如下: IF OBJECT_ID(N'dbo.ufn_GUID', 'FN') IS NOT NULL BEG…
有时我们要用到批量操作时都会对字符串进行拆分,可是SQL Server中却没有自带Split函数,所以要自己来实现了. -- ============================================= -- Author: chenlong -- Create date: 2015-02-02 -- Description: 根据逗号分隔拆分字符串,返回table -- ============================================= ALTER FUN…
有时我们要用到批量操作时都会对字符串进行拆分,可是SQL Server中却没有自带Split函数,所以要自己来实现了.没什么好说的,需要的朋友直接拿去用吧 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /* by kudychen 2011-9-28 */ CREATE function [dbo].[SplitString] ( @Input nvarchar(max), --input string to be separated @Sep…
在T-SQL中我们经常批量操作时都会对字符串进行拆分,可是SQL Server中却没有自带Split函数,所以要自己来实现了.这里将字符串分割以table形式输出 语法如下: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /* create by shuke.li 2020-9-15 */ create function [dbo].[SplitString] ( @Input nvarchar(max), --input string to…
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings name="  " connectionString="  "></connectionStrings >, connectionString代表数据库链接字符串,name代表你想要引用的时候查找的名称.(其实asp里的web.config配置方式也跟这…
用户定义函数(UDF)分类  SQL SERVER中的用户定义函数(User Defined Functions 简称UDF)分为标量函数(Scalar-Valued Function)和表值函数(Table-Valued Function).其中表值函数又分为Inline table-valued functions和Multistatement table-valued functions. 用户定义函数(UDF)在 SQL Server 中发挥重要的作用.用户定义函数可以用于执行复杂的逻辑…
原文引自:  作者: 缺水的海豚  来源: 博客园  发布时间: 2010-09-21 21:47  阅读: 6136 次  推荐: 0   原文链接   [收藏] 摘要:ExtJs用到的数据内容基本上都是JSON格式的,要和ASP.NET结合开发,需要格式化数据成JSON的东西.所以作者实现了一个生成JSON字符串的方法. 最近在学习ExtJs与ASP.NET结合开发,前者用到的数据内容基本上都是JSON格式,遂想写一个格式化数据成JSON的东东,在网上找了一下,发现还蛮多的,实现了一个类似于…
今天遇到一个问题:想把sql字符串在SQL Server 中执行了,并获取执行的结果 ); SET @tablename='select @table3 = count(1) from UserVisitLog'; ); exec sp_executesql @tablename, N'@table3 NVARCHAR(300) OUT',@newtablename OUT PRINT @newtablename…
在SQL Server中,我们能否找到索引的创建时间?最后一次索引重建(Index Rebuild)的时间? 最后一次索引重组(INDEX REORGANIZE)的时间呢?  答案是我们无法准确的找到索引的创建时间.最后一次索引重组时间,最后一次索引重建的时间. 其实就目前SQL Server的各个版本而言,还没有一个系统表或DMV视图有保存索引创建的时间,索引重建的时间.索引重组的时间.但是有些方法可以间接得到最后一次索引重建的时间,但是这个值有时候往往不是准确的(有时候是准确的,有时候是不准…
sql server中的uuid  建表: 1.自增长 studentno int primary key identity(1,1)——bigint也是可以的 2.创建uuidcustomerid uniqueidentifier primary key default newid()     获取UUID:select newid() 即可   1.获取32位的UUID -----批处理 declare @newid varchar(36)=newid() select SUBSTRING(…