SqlServer自定义函数Function中调用with as
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SqlServer自定义函数Function中调用with as,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3901字,纯文字阅读大概需要6分钟。
内容图文
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
标签:div 包含 insert 使用 nan inner 双引号 定义 标准
本文系统来源:http://www.cnblogs.com/sunliyuan/p/6879461.html
内容总结
以上是互联网集市为您收集整理的SqlServer自定义函数Function中调用with as全部内容,希望文章能够帮你解决SqlServer自定义函数Function中调用with as所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。