详解SqlServer 表达式(expression)

2   具体内容

 2.1  使用范围

SQL Server(2008开始) ;Azure SQL数据库;Azure  SQL数据仓库;并行数据仓库

2.2  语法

是SQL Server数据库引擎评估以获取单个数据值的符号和运算符的组合。简单表达式可以是单个常量,变量,列或标量函数。运算符可用于将两个或多个简单表达式连接到一个复杂的表达式中。

-- Syntax for SQL Server and Azure SQL Database
{ constant | scalar_function | [ table_name. ] column | variable
 | ( expression ) | ( scalar_subquery )
 | { unary_operator } expression
 | expression { binary_operator } expression
 | ranking_windowed_function | aggregate_windowed_function
}
-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse
-- Expression in a SELECT statement
<expression> ::=
{
 constant
 | scalar_function
 | column
 | variable
 | ( expression )
 | { unary_operator } expression
 | expression { binary_operator } expression
}
[ COLLATE Windows_collation_name ]
-- Scalar Expression in a DECLARE, SET, IF…ELSE, or WHILE statement
<scalar_expression> ::=
{
 constant
 | scalar_function
 | variable
 | ( expression )
 | (scalar_subquery )
 | { unary_operator } expression
 | expression { binary_operator } expression
}
[ COLLATE { Windows_collation_name ]

2.3  参数

译文:

2.4 表达结果

对于由单个常量,变量,标量函数或列名组成的简单表达式:表达式的数据类型,排序规则,精度,比例和值是数据类型,排序规则,精度,比例和值参考元素。

当使用比较或逻辑运算符组合两个表达式时,生成的数据类型为Boolean,该值为以下之一:TRUE,FALSE或UNKNOWN。有关布尔数据类型的更多信息,请参阅比较运算符(Transact-SQL)。

当使用算术,按位或字符串运算符组合两个表达式时,操作员将确定生成的数据类型。

由许多符号和运算符组成的复杂表达式评估为单值结果。通过组合表达式来确定生成的表达式的数据类型,排序规则,精度和值,每次两个,直到达到最终结果。表达式组合的顺序由表达式中运算符的优先级定义。

 2.5 备注

3   参考文献

【01】https://docs.microsoft.com/zh-cn/sql/t-sql/language-elements/expressions-transact-sql

总结

以上所述是小编给大家介绍的SqlServer 表达式(expression),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • SQLserver2008使用表达式递归查询

    复制代码 代码如下: --由父项递归下级 with cte(id,parentid,text) as (--父项 select id,parentid,text from treeview where parentid = 450 union all --递归结果集中的下级 select t.id,t.parentid,t.text from treeview as t inner join cte as c on t.parentid = c.id ) select id,parentid,t

  • SqlServer类似正则表达式的字符处理问题

    SQL Serve提供了简单的字符模糊匹配功能,比如:like, patindex,不过对于某些字符处理场景还显得并不足够,日常碰到的几个问题有: 1. 同一个字符/字符串,出现了多少次 2. 同一个字符,第N次出现的位置 3. 多个相同字符连续,合并为一个字符 4. 是否为有效IP/身份证号/手机号等  一. 同一个字符/字符串,出现了多少次 同一个字符,将其替换为空串,即可计算 declare @text varchar(1000) declare @str varchar(10) set

  • 解决大于5.7版本mysql的分组报错Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated

    原因: MySQL 5.7.5和up实现了对功能依赖的检测.如果启用了only_full_group_by SQL模式(在默认情况下是这样),那么MySQL就会拒绝选择列表.条件或顺序列表引用的查询,这些查询将引用组中未命名的非聚合列,而不是在功能上依赖于它们.(在5.7.5之前,MySQL没有检测到功能依赖项,only_full_group_by在默认情况下是不启用的.关于前5.7.5行为的描述,请参阅MySQL 5.6参考手册.) 执行以下个命令,可以查看 sql_mode 的内容: mys

  • SqlServer使用公用表表达式(CTE)实现无限级树形构建

    SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它.每个CTE仅被定义一次(但在其作用域内可以被引用任意次),并且在该查询生存期间将一直生存.可以使用CTE来执行递归操作. DECLARE @Level INT=3 ;WITH cte_parent(CategoryID,CategoryName,ParentCategoryID,Level) AS ( SELECT c

  • 关于SQL中CTE(公用表表达式)(Common Table Expression)的总结

    一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分. 特别对于UNION ALL比较有用.因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用WITH AS短语,则只要执行一遍即可.如果WITH AS短语所定义的表名

  • 详解SqlServer 表达式(expression)

    2   具体内容  2.1  使用范围 SQL Server(2008开始) :Azure SQL数据库:Azure  SQL数据仓库:并行数据仓库 2.2  语法 是SQL Server数据库引擎评估以获取单个数据值的符号和运算符的组合.简单表达式可以是单个常量,变量,列或标量函数.运算符可用于将两个或多个简单表达式连接到一个复杂的表达式中. -- Syntax for SQL Server and Azure SQL Database { constant | scalar_function

  • 详解lambda表达式foreach性能分析

    java 8的新特性之一就是lambda表达式,parallelStream()都说性能会比较高,现一探究竟. 话不多说,上代码: @Test public void test2(){ List<String> list = new ArrayList<>(); for(int i=0;i<10000;i++) list.add(String.valueOf(i)); //lambda表达式 long start = System.currentTimeMillis(); /

  • C++实例详解lambda表达式的使用

    目录 lambda表达式 1.lambda表达式语法 2.lambda应用 3.lambda表达式的应用实践 1.计算器案例 2.智能指针案例 3.优先级队列 lambda表达式 C++11 函数对象的升级版 => lambda表达式 函数对象的缺点:(需要定义一个类) 函数对象使用在 泛型算法参数传递 比较性质/自定义操作 优先级队列 智能指针(自定义智能指针的删除器) lambda表达式原理: 就是函数对象更高级的实现! 1.lambda表达式语法 例1: lambda表达式对应函数对象小括

  • 详解cron表达式

    Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: (1) Seconds Minutes Hours DayofMonth Month DayofWeek Year (2)Seconds Minutes Hours DayofMonth Month DayofWeek 一.结构 corn从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份 二.各字段的含义 字段 允许值 允许的特殊字符 秒(Secon

  • 详解SqlServer数据库中Substring函数的用法

    功能:返回字符.二进制.文本或图像表达式的一部分 语法:SUBSTRING ( expression, start, length ) 1.substring(操作的字符串,开始截取的位置,返回的字符个数) 例如: 从'abbccc'中返回'ccc',charindex函数用法(charindex(查找的字符串,被查找的字符串,开始查找的位置),例如查找'abbccc'中第一个'c'出现的位置,charindex('c','abbccc',1)) declare @str1 varchar(25

  • 详解SQLServer和Oracle的分页查询

    不管是DRP中的分页查询代码的实现还是面试题中看到的关于分页查询的考察,都给我一个提示:分页查询是重要的.当数据量大的时候是必须考虑的.之前一直没有花时间停下来好好总结这里.现在又将Oracle视频中关于分页查询的内容看了一遍,发现很容易就懂了. 1.分页算法     最开始我在网上查找资料的时候,看到很多分页内容,感觉很多很乱.其实不是这样.网上那些资料大同小异.问题出在了我自己这里.我没搞明白进行分页的前提是什么?我们都知道只要有分页都会涉及这些变量:每页又多少条记录(pageSize).当

  • 详解SQLServer 2008 R2数据库SSAS建模及扩展能力

    SQLServer 2008 R2数据库中提供的SSAS建模工具包括包括SQL Server Management Studio 和Business Intelligence Development Studio,那么建模的过程是怎样的呢?本文我们就来介绍这些,接下来就让我们来一起了解一下SQLServer 2008 R2数据库的建模工具和关键过程以及数据挖掘.权限和访问接口等的知识吧. 建模工具和关键过程 SSAS的建模的目的是设计多维数据库对象,建模的工具包括SQL Server Manag

  • 详解sqlserver查询表索引

    SELECT   索引名称=a.name ,表名=c.name ,索引字段名=d.name ,索引字段位置=d.colid FROM sysindexes a JOIN sysindexkeys b ON a.id=b.id AND a.indid=b.indid JOIN sysobjects c ON b.id=c.id JOIN syscolumns d ON b.id=d.id AND b.colid=d.colid WHERE a.indid NOT IN(0,255) -- and

  • JSP中EL表达式的用法详解(必看篇)

    EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${为起始.以}为结尾的.上述EL范例的意思是:从Session的范围中,取得 用户的性别.假若依照之前JSP Scriptlet的写法如下: User user =(User)session.getAttribute("user"); String sex =user.getSex( );

  • OGNL表达式基本语法与用法详解

    一.OGNL中的#.%和$符号 #.%和$符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分.在这里我们简单介绍它们的相应用途. 1.#符号的三种用法 1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀.实际上,#相当于ActionContext. getContext():#session.msg表达式相当于ActionContext.getContext().getSessi

随机推荐