SQLSERVER在很多场景下需要自建函数来满足工作需求,本文就自建一个常用的字符串分割函数。...需求说明 将字符串按照指定的分隔符进行分割,并将结果按照从后往前的顺序倒序排列,拼接后的结果用‘/’符连接。...执行查询 select name,(select val from [f_split](name,',')) from tmp; 结果如下 [tpsfccgxzx.png] TIPs: 以上函数包含字符串截取函数...、字符串长度、字符串位置等,不太熟悉的小伙伴可以自己多练习一下 SQL SERVER 2016中新增了STRING_SPLIT 函数,也建议大家了解一下 还有一个偏门的PARSENAME函数也可以实现拆分...,但是有局限性(是啥,自己测,哈哈) 如需获取该函数的每步说明可以联系我获取哦,谢谢。
为什么要使用参数化查询呢?参数化查询写起来看起来都麻烦,还不如用拼接sql语句来的方便快捷。当然,拼接sql语句执行查询虽然看起来方便简洁,其实不然。远没有参数化查询来的安全和快捷。...今天刚好了解了一下关于Sql Server 参数化查询和拼接sql语句来执行查询的一点区别。...参数化查询与拼接sql语句查询相比主要有两点好处: 1、防止sql注入 2、 提高性能(复用查询计划) 首先我们来谈下参数化查询是如何防止sql注入的这个问题吧。...复用查询计划: select * from AU_User where Id=1 select * from AU_User where Id=2 Sql Server在执行一条查询语句之前都对对它进行...“编译 ”并生成“查询计划”,上面两条查询语句生成的查询计划就是两条不一样的查询计划,在下面这张图片当中我们可以去尝试下执行这两条sql语句 ,结果显而易见会生成两条查询计划,Id后面所接的参数不一致。
())=0 系统函数: 函数 参数/功能 GetDate( ) 返回系统目前的日期与时间 DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2...参数 interval的设定值: 值 缩写(Sql Server) Access 和 ASP 说明 Year Yy yyyy 年 1753 ~ 9999 Quarter Qq q 季 1 ~ 4 Month...,第一个参数,varchar(10)是目标系统所提供的数据类型,包括 bigint 和 sql_variant。...不能使用用户定义的数据类型。第二个参数是你要转换的字段,我这里是[time]。...最后一个就是格式了,这个值是可选的:20或者120都可以,它遵循的是[ODBC 规范],输入/输出样式为:yyyy-mm-dd hh:mm:ss[.fff] 具体的可以参考Sql Server的联机帮助
Unicode 字符串,分隔符的加入可使输入的字符串成为有效的 Microsoft SQL Server 2005 分隔标识符。...Transact-SQL 语法约定 语法 QUOTENAME ( 'character_string' [ , 'quote_character' ] ) 参数 ‘character_string...返回类型 nvarchar(258) 示例 以下示例接受字符串 abc[]def 并使用 [ 和 ] 字符来创建有效的 SQL Server 分隔标识符。...这个函数和SQL Server对象名组合使用,以将结果传递给表达式。...它只用于给输入的字符串加一对方括号,并返回新形成的字符串。如果参数包含保留的分隔符或者封装字符(比如引号或括号),这个函数将修改字符串,以便SQL Server能将结果字符串中的这类字符当成文本字符。
个人使用SQL Server日常用到的一些函数(会不断的更新完善) 1.获取当前时间--GetDate() ? 2.DatePart() 函数 ? ?...3.字符串截取--substring 三个参数,第一个参数需要截取的,第二个参数,截取字符串的起始位置(起始位置是1),第三个参数需要截取字符串的长度。 ? ?...4.日期增减函数-DateAdd 三个参数,第一参数合法的日期表达式,第二个参数时间间隔,第三个参数时间 合法的日期表达式列表 ? ?...5.查找特定字符- CharIndex函数 三个参数,第一个参数需要查找的字符串,第二个参数被查找的字符串,第三个参数查找的起始位置。 ? ?...6.DateName函数 用法与DatePart函数很类似,区别是DateName返回类型:nvarchar,DatePart返回类型:int ? ?
Sql Server基本函数 1.字符串函数 长度与分析 datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格 substring(expression,start...两函数对应,取ascii码,根据ascii吗取字符 字符串查找 charindex(char_expr,expression) 返回char_expr的起始位置 patindex("%pattern...%",expression) 返回指定模式的起始位置,否则为0 2.数学函数 abs(numeric_expr) 求绝对值 ceiling(numeric_expr) 取大于等于指定值的最小整数...sign(int_expr) 根据正数,0,负数,,返回+1,0,-1 sqrt(float_expr) 平方根 3.日期函数 getdate() 返回日期 datename(...() 用户登录名 user_name() 用户在数据库中的名字 user 用户在数据库中的名字 show_role() 对当前用户起作用的规则 db_name() 数据库名 object_name
在SQL Server中提供了许多内置函数,按函数种类可以分为聚合函数、数学函数、字符串函数、日期时间函数、转换函数和元数据函数等6种。...1.3 数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐式类型转换。...在SQL Server中数据类型转换分为两种,分别如下: 隐性转换: SQL Server自动处理某些数据类型的转换。...返回数据表中数据字段的名称、数据类型、长度等描述信息。 返回数据表中定义的约束、索引、主键或外键等信息。...返回数据库对象的编号 返回用户的SID (安全标识号) 返回用户的登录名 返回数据库对象的名称 返回数据库用户的标识号 返回数据库用户名 常用的元数据函数及说明如图所示: ?
但是最近有个SQL Server的需求,需要知道历史SQL的执行者。...如下SQL,可以找到当前SQL Server跑过的SQL,但是没用户信息, SELECT p.refcounts, p.usecounts, sqltext.text FROM sys.dm_exec_cached_plans...view=sql-server-ver15 但是能和sys.dm_exec_sql_text关联起来的只有database_id,如下得到的应该是个笛卡尔积,并未将SQL和login_name用户的信息关联起来...咨询了大师,给到的回复是,SQL Server不能通过DMV视图来查询某一个会话执行过的历史SQL,只能采集当前会话正在执行的SQl,不断采集然后保存下来才行。...无论从监控粒度,还是数据统计的角度,SQL和用户信息关联检索还是有用的,可以做到更精细的控制,不太清楚为什么微软官方没给出这样的设计,或者有其他隐藏的功能?
//试了多种方式,这样写like的参数才正确 sb.Append(" and a.GOODSID like '%'+@GOODSID+'%'"); list.Add(
简介 在创建SQL server用户时会发现创建了两个账号。这里会涉及两个概念----登录名账号和数据库用户。 本人不详细解读(我也不熟),只是在工作中遇到,简单了解。...若想深度学习请阅读网上大神们写的专业且深度的文章。 登录名 在创建用户(口头概念,非数据库用户)时,第一步是创建登录名账号,且会设置其密码。...在使用代码连接数据库时,或者相关工具连接数据库(如navicat)时,用到的用户名和密码就是这个。所以登录名账号是用来连接SQL server数据库引擎的。...所以登录名账号是通过数据库用户来操作数据库的,对此数据库的权限也要看绑定的数据库用户。 每个数据库的用户并不相通,但是可以每个数据库创建相同名称的用户名。 概念总结 登录名账号是用来连接数据库的。...sql语句 登录名语句 创建 CREATE LOGIN [login_name] WITH PASSWORD = 'password'; 删除 DROP LOGIN [login_name]; 数据库用户语句
学习SQL,有很多时候需要使用到系统函数,比如一些统计函数(聚合函数),日期函数,字符串函数等。今天给大家整理了一份SQL Server的常用函数,希望对你有所帮助。...) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型 --与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型 PI() --返回值为π 即3.1415926535897936...函数返回的两个字符表达式的值的差异 --0 两个SOUNDEX 函数返回值的第一个字符不同 --1 两个SOUNDEX 函数返回值的第一个字符相同 --2 两个SOUNDEX...(datepart,date) --函数以整数值的形式返回日期的指定部分 GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间 6、系统函数 APP_NAME()...--函数返回表中指定字段的长度值 COL_NAME(table_id,column_id) --函数返回表中指定字段的名称即列名 DATALENGTH() --函数返回数据表达式的数据的实际长度
大家好,又见面了,我是你们的朋友全栈君。 DATEADD日期函数 DATEADD() 函数在日期中添加或减去指定的时间间隔。...2016-12-30 select DATEADD(year,2,'2014-12-30') 结果:2016-12-30 语法 DATEADD(datepart,number,date) date 参数是合法的日期表达式...number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。...datepart 参数可以是下列的值: datepart 缩写 年 yy, yyyy 季度 qq, q 月...文中存在的观点/描述不正确的地方,欢迎指正。 感谢您的阅读,如果您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是yxtic 。
大家好,又见面了,我是你们的朋友全栈君。...–函数QUOTENAME –功能:返回带有分隔符的Unicode 字符串,分隔符的加入可使输入的字符串成为有效的Microsoft SQL Server 2005 分隔标识符。...–语法 QUOTENAME ( ‘character_string’ [ , ‘quote_character’ ] ) –举例说明: –比如你有一个表,名字叫index –你有一个动态查询,参数是表名...* from ‘+@tbname) –这样print出来的数据是 select * from index –因为index是字键字,肯定出错,加上括号就可以了: select * from [index...,即用该函数规范对象名,以便程序顺利运行 */ 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/164275.html原文链接:https://javaforall.cn
函数的参数类型定义 参数定义类型的方法 def person(name:str, age:int=33): print(name, age) 函数定义在python3.7之后可用 函数不会对参数类型进行验证
函数是所有语言系统下都具备的内部数据处理过程,SQL SERVER也同样内置了许多函数。在SQL SERVER中,函数是由一个或多个T-SQL语句组成的子程序。利用函数可以简化数据的处理操作。...函数分为内置函数和用户定义函数两种。用户定义函数接受零个或多个输入参数,并返回标量值或表。...SELECT NULLIF(‘ABc’,’AB’) SELECT NULLIF(‘AB’,’AB’) 七、 用户自定义函数 1、标量值函数的定义 CREATE FUNCTION [所有者名.]函数名...: 1) 形式参数的数据类型为系统的基本标量类型,不能为timestamp类型、用户定义数据类型和非标量类型 (如cursor和table)。...当调用用户自定义函数时,必须提供函数名和参数,标量函数可以在SELECT语句中调用,或用EXEC语句执行调用,调用形式分别为:所有者名.函数名(实参1, 实参2, …实参n) 其中用EXEC语句调用时参数次序可与定义时不同
本文链接:https://blog.csdn.net/qq_36439293/article/details/100537455 Datepart():返回代表指定日期的指定日期部分的整数 语法:Datepart...(datepart,date) 返回类型:int DateName():返回代表指定日期的指定日期部分的字符串 语法:DateName(datepart,date) 返回类型:nvarchar 日期部分...一年中的第几周 weekday dw日期部分返回对应于星期中的某天的数,例如:Sunday =1 星期几 Hour hh 小时 minute mi, n 分钟 second ss, s 秒 millisecond...注意: 1)因为DatePart返回类型为int类型,所以当前日期的结果是做了运算的结果 2)在多数SQL SERVER 英文版本中(以及部分繁体版), SELECT DATENAME(month, getdate...()) 得到 字符串类型的 January ; 而在简体中文版中:SELECT DATENAME(month, getdate()) 得到 字符串类型的 01 而SELECT DATEPART(
--内容来自:http://hi.baidu.com/muqingz/item/8fb7b3ca8a485b0cac092f7b Select CONVERT...
()等 自定义函数: 函数的定义,调用 def 语句定义函数 def 函数名(参数列表): 函数体(代码块) [ return 返回值] - 函数名就是标识符...) 函数调用 1.函数定义 只是声明了一个函数,它不会被执行,需要调用 2.调用的方式,就是函数名加上(),括号内写上参数 3.调用时写得参数是实际参数,是实实在在传入的值,简称实参 函数举例...接收2 个参数 计算的结果,通过返回值返回 调用通过函数名add加2 个参数,返回值可使用变量接收 定义需要在调用钱,也就是说调用时,已经被定义过了,否则抛出Name Errory异常 函数式可调用的对象...,callable() 函数参数 参数调用时传入的参数要和定义的个数相匹配(可变参数例外) 位置参数: def f(x,y,z) 调用使用 f(1,3,5) 按照参数定义顺序传入实参... = 5): return x + y 作用 1.参数的默认值可以在未传入足够的实参的时候,对没有给定的参数复制为默认值 2.参数非常多的时候,并不需要用户每次都输入所有的参数,
在Spark中,也支持Hive中的自定义函数。...自定义函数大致可以分为三种: UDF(User-Defined-Function),即最基本的自定义函数,类似to_char,to_date等 UDAF(User- Defined Aggregation...Funcation),用户自定义聚合函数,类似在group by之后使用的sum,avg等 UDTF(User-Defined Table-Generating Functions),用户自定义生成函数...这里我直接用的java8的语法写的,如果是java8之前的版本,需要使用Function2创建匿名函数。 再来个自定义的UDAF—求平均数 先来个最简单的UDAF,求平均数。...Sql官方文档 Scala菜鸟教程 spark1.5 自定义聚合函数UDAF
SQL Server 中的 ROW_NUMBER 函数 ROW_NUMBER 是 SQL 2005 中新增的函数, 显示结果的行号, 多用于分页, 基本的语法为 ROW_NUMBER() OVER({}) 其中, 分区语句是可选的, 排序语句是必须的, 比如这样的语句: SELECT ROW_NUMBER() OVER(ORDER...BY ProductID), CategoryID, ProductName, UnitPrice FROM Products 返回的结果为: ?...ROW_NUMBER 通常用于分页, 但是也有一些巧妙地用法, 例如, 要查询每个分类中最便宜的三种产品, 可以使用下面的查询语句: SELECT * FROM ( SELECT ROW_NUMBER
领取专属 10元无门槛券
手把手带您无忧上云