SqlServer自定义函数Function中调用with as
- SET QUOTED_IDENTIFIER ON
标识符可以由双引号分隔,而文字必须由单引号分隔
- SET QUOTED_IDENTIFIER OFF
标识符不可加引号,且必须遵守所有 Transact-SQL 标识符规则。
- SET NOCOUNT ON --返回受影响的行数
- SET DATEFIRST 1 --定义日期周一开始
- SET ANSI_NULLS ON
在与空值进行比较时,允许比较运算符返回 TRUE 或 FALSE
- 如果 ColumnA 包含 Null 值,则 ColumnA = NULL 之类的比较操作会返回 TRUE;
如果 ColumnA 除了包含 NULL 外还包含某些值,则这类比较操作将返回 FALSE。
比较计算结果为 NULL 的两个表达式也会返回 TRUE。
SQL-92 标准要求在对空值进行等于 (=) 或不等于 (<>) 比较时取值为 FALSE。当 SET ANSI_NULLS 为 ON 时,
即使 column_name 中包含空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。
即使 column_name 中包含非空值,使用 WHERE column_name <> NULL 的 SELECT 语句仍会返回零行。- 当 SET ANSI_NULLS 为 OFF 时,等于 (=) 和不等于
- (<>) 比较运算符不遵从 SQL-92 标准。使用 WHERE
- column_name = NULL 的 SELECT 语句返回 column_name 中包含空值的行。使用 WHERE
- column_name <> NULL 的 SELECT
- 语句返回列中包含非空值的行。此外,使用 WHERE column_name
- <> XYZ_value 的 SELECT 语句返回所有不为
- XYZ_value 也不为 NULL 的行。
- CREATE FUNCTION dbo.GetTargetSummaryRefNew
- (
- @TargetGroupList dbo.GuidList READONLY
- )RETURNS
- @ TABLE(
- TargetDetailID NVARCHAR(36)
- ,pTargetID NVARCHAR(36)
- ,pTargetName NVARCHAR(256)
- ,sTargetID NVARCHAR(36)
- ,sTargetName NVARCHAR(256)
- ,TargetGroupID NVARCHAR(36)
- ,pSummaryType NVARCHAR(64)
- ,ConversionValue DECIMAL(18,8)
- ,pToTargetID NVARCHAR(36)
- ,pIsCalculated INT
- )
- AS
- BEGIN
- WITH v_targetdetail(ID,ParentID,TargetID,TargetName,TargetGroupID,ConversionValue,ToTargetID,IsCalculated,IsLeaf,IDFullPath,IsDisplay)
- AS
- (SELECT p.ID
- ,p.ParentID
- ,ISNULL(p.TargetID,p.ID) TargetID
- ,p.Name TargetName
- ,p.GroupID TargetGroupID
- ,p.ConversionValue
- ,p.ToTargetID
- ,p.IsCalculated
- ,p.IsLeaf
- ,CAST(p.ID AS NVARCHAR(max)) IDFullPath
- ,p.IsDisplay
- FROM ToBusinessTargetGroupDetail2(NOLOCK) p
- INNER JOIN @TargetGroupList p1 ON p1.[GUID]=p.GroupID
- WHERE p.ParentID IS NULL OR p.IsReported=0
- UNION ALL
- SELECT p.ID
- ,p.ParentID
- ,ISNULL(p.TargetID,p.ID) TargetID
- ,p.Name TargetName
- ,p1.TargetGroupID
- ,p.ConversionValue
- ,p.ToTargetID
- ,p.IsCalculated
- ,p.IsLeaf
- ,CAST(p1.IDFullPath+'.'+p.ID AS NVARCHAR(max)) IDFullPath
- ,p.IsDisplay
- FROM ToBusinessTargetGroupDetail2(NOLOCK) p
- INNER JOIN v_targetdetail p1 ON p1.ID=p.ParentID AND p1.TargetGroupID=p.GroupID
- WHERE p.IsReported=1
- )
- ,v_taregetsummaryref(TargetDetailID,pTargetID,pTargetName,TargetGroupID,sTargetID,sTargetName,ConversionValue,pToTargetID,pIsCalculated,sIsLeaf)
- AS
- (
- SELECT p.ID
- ,p.TargetID pTargetID
- ,p.TargetName pTargetName
- ,p.TargetGroupID
- ,p1.TargetID sTargetID
- ,p1.TargetName sTargetName
- ,p1.ConversionValue
- ,p.ToTargetID
- ,p.IsCalculated
- ,p1.IsLeaf
- FROM v_targetdetail p
- INNER JOIN v_targetdetail p1 ON p1.TargetGroupID=p.TargetGroupID AND p1.IDFullPath LIKE p.IDFullPath+'%'
- WHERE p.IsDisplay=1
- )
- INSERT INTO @t(TargetDetailID,pTargetID,pTargetName,sTargetID,sTargetName,TargetGroupID,ConversionValue,pToTargetID,pIsCalculated)
- SELECT TargetDetailID,pTargetID,pTargetName,sTargetID,sTargetName,TargetGroupID,ConversionValue,pToTargetID,pIsCalculated
- FROM v_taregetsummaryref
- UNION ALL
- SELECT p1.TargetDetailID
- ,p1.pTargetID
- ,p1.pTargetName
- ,p2.ID sTargetID
- ,p2.Name sTargetName
- ,p1.TargetGroupID
- ,p1.ConversionValue
- ,p1.pToTargetID
- ,p1.pIsCalculated
- FROM dbo.ToFinanceAccount(NOLOCK) p
- INNER JOIN v_taregetsummaryref p1 ON p1.sTargetID=p.ID AND p1.sIsLeaf=1
- INNER JOIN dbo.ToFinanceAccount p2 ON p2.FullPath LIKE p.FullPath+'\%' AND ISNULL(p2.IsDelete,0)=0
- WHERE ISNULL(p.IsDelete,0)=0 AND p.IsLeaf!=1
- UPDATE p
- SET p.pSummaryType=ISNULL(p1.SummaryType,'Org&Date')
- FROM @t p
- LEFT JOIN ToBusinessTarget2 p1 ON p1.ID=p.pTargetID
- RETURN
- end
SqlServer自定义函数Function中调用with as的更多相关文章
- Sqlserver自定义函数Function
一.FUNCTION: 在sqlserver2008中有3中自定义函数:标量函数/内联表值函数/多语句表值函数,首先总结下他们语法的异同点: 同点:1.创建定义是一样的: ...
- 利用jQuery扩展接口为jQuery框架定义了两个自定义函数,然后调用这两个函数
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Dynamics 365 CE的插件/自定义工作流活动中调用Web API示例代码
微软动态CRM专家罗勇 ,回复325或者20190428可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 现在Web API越来越流行,有时候为了程序更加健壮,需要在插件 ...
- sqlserver自定义函数的创建与调用
sqlserver中有系统提供的函数,像avg.sum.getdate()等,用户还可以自定义函数. 用户自定义的函数包括:标量函数和表值函数,其中标量函数和系统函数的用法一样,表值函数根据主体的定义 ...
- SQLServer自定义函数简单演示
CREATE FUNCTION [ schema_name. ] function_name ( [ { @parameter_name [ AS ][ type_schema_name. ] par ...
- sqlserver自定义函数【粘】
用户定义自定义函数像内置函数一样返回标量值,也可以将结果集用表格变量返回 用户自定义函数的类型: 标量函数:返回一个标量值 表格值函数{内联表格值函数.多表格值函数}:返回行集(即返回多个值) 1. ...
- PowerShell自定义函数定义及调用
PowerShell是一种命令集,也有自己的语法定义及函数.本文主要介绍如何自定义powershell函数及如何调用,当初在写PowerShell自定义函数的时候查阅了很多资料都没找到如何调用自定义函 ...
- java mysql自定义函数UDF之调用c函数
正如sqlite可以定义自定义函数,它是通过API定义c函数的,不像其他,如这里的mysql.sqlite提供原生接口就可以方便的调用其他语言的方法,同样的mysql也支持调用其它语言的方法. goo ...
- SQL server 自定义函数FUNCTION的使用
原文链接:https://blog.csdn.net/lanxingbudui/article/details/81736402 前言: 在SQL server中不仅可以可以使用系统自带 ...
随机推荐
- 数据库中增加操作insert into的用法和查询select的用法
insert into的用法 1.一条insert into 可以插入多条记录 2.insert into 能判断主键是否冲突,和做出冲突处理 如果主键冲突的话会报错,还能写成如果冲突就更新的形式格式 ...
- [代码]--ORA-01843: 无效的月份
1.插入的日期如果是DateTime类型的,没有影响 2.如果DateTime.ToString()获取的日期,就会报错,例如(@param_datetime = cf.GetServerDateTi ...
- mysql8.0+修改用户密码
查看初始安装密码登陆: [root@VM_133_71_centos yum.repos.d]# cat /var/log/mysqld.log|grep 'A temporary password' ...
- ctags相关
ctags相关 首先肯定是下载安装了.这点不用多讲,根据自己的操作系统或者平台,使用相应的包管理工具或者源码编译安装都可以. 下载完之后,在想要使用ctags帮助查找的文件夹(一般是项目的根目录)下输 ...
- cf1066F Yet Another 2D Walking (贪心+dijkstra)
易证我们走的时候只会从某一层的某端点走向另一端点.然后走向下一层的某端点.. 所以建图然后dijkstra就行了 调了一年以后发现dijkstra写错了 #include<bits/stdc++ ...
- LANMP环境编译参数查看方法
nginx编译参数查看:/usr/local/nginx/sbin/nginx -V apache编译参数查看:cat /usr/local/apache2/build/config.nice mys ...
- debian8.4 ubuntu14.04双系统_debian8.4硬盘安装
本文根据官网说明和实际安装而写,利在分享知识,但转载请注明出处以尊重知识! 一 首先在win7下利用EasyBCD添加安装选项,“添加新条目|安装|配置” 在弹出的memu.lst中填写如下内容: t ...
- 弹指之间 -- Slow Soul
CHAPTER 16 慢灵魂乐 Slow Soul (8Beat) Slow Soul每小节内几乎都是以8分音符弹奏,又称之为8Beat节奏,80左右的速度最能表现此节奏特色. 示例曲目: 拥抱
- 构造方法和一般方法的区别(面试)-----java基础知识总结
构造方法:对象创建时,就会调用与之对应的构造方法,对对象进行初始化: 一般方法:对象创建后,需要方法功能时才会调用. 构造方法,在对象创建时,会调用且只调用一次. 一般方法,对象创建后,可以被调用多次 ...
- Hadoop生态圈-Flume的组件之拦截器与选择器
Hadoop生态圈-Flume的组件之拦截器与选择器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客只是配置的是Flume主流的Interceptors,想要了解更详细 ...