当前位置:   article > 正文

SqlServer自定义函数Function中调用with as

sql server 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 的行。

  1. CREATE FUNCTION dbo.GetTargetSummaryRefNew
  2. (
  3. @TargetGroupList dbo.GuidList READONLY
  4. )RETURNS
  5. @ TABLE(
  6. TargetDetailID NVARCHAR(36)
  7. ,pTargetID NVARCHAR(36)
  8. ,pTargetName NVARCHAR(256)
  9. ,sTargetID NVARCHAR(36)
  10. ,sTargetName NVARCHAR(256)
  11. ,TargetGroupID NVARCHAR(36)
  12. ,pSummaryType NVARCHAR(64)
  13. ,ConversionValue DECIMAL(18,8)
  14. ,pToTargetID NVARCHAR(36)
  15. ,pIsCalculated INT
  16. )
  17. AS
  18. BEGIN
  19. WITH v_targetdetail(ID,ParentID,TargetID,TargetName,TargetGroupID,ConversionValue,ToTargetID,IsCalculated,IsLeaf,IDFullPath,IsDisplay)
  20. AS
  21. (SELECT p.ID
  22. ,p.ParentID
  23. ,ISNULL(p.TargetID,p.ID) TargetID
  24. ,p.Name TargetName
  25. ,p.GroupID TargetGroupID
  26. ,p.ConversionValue
  27. ,p.ToTargetID
  28. ,p.IsCalculated
  29. ,p.IsLeaf
  30. ,CAST(p.ID AS NVARCHAR(max)) IDFullPath
  31. ,p.IsDisplay
  32. FROM ToBusinessTargetGroupDetail2(NOLOCK) p
  33. INNER JOIN @TargetGroupList p1 ON p1.[GUID]=p.GroupID
  34. WHERE p.ParentID IS NULL OR p.IsReported=0
  35. UNION ALL
  36. SELECT p.ID
  37. ,p.ParentID
  38. ,ISNULL(p.TargetID,p.ID) TargetID
  39. ,p.Name TargetName
  40. ,p1.TargetGroupID
  41. ,p.ConversionValue
  42. ,p.ToTargetID
  43. ,p.IsCalculated
  44. ,p.IsLeaf
  45. ,CAST(p1.IDFullPath+'.'+p.ID AS NVARCHAR(max)) IDFullPath
  46. ,p.IsDisplay
  47. FROM ToBusinessTargetGroupDetail2(NOLOCK) p
  48. INNER JOIN v_targetdetail p1 ON p1.ID=p.ParentID AND p1.TargetGroupID=p.GroupID
  49. WHERE p.IsReported=1
  50. )
  51. ,v_taregetsummaryref(TargetDetailID,pTargetID,pTargetName,TargetGroupID,sTargetID,sTargetName,ConversionValue,pToTargetID,pIsCalculated,sIsLeaf)
  52. AS
  53. (
  54. SELECT p.ID
  55. ,p.TargetID pTargetID
  56. ,p.TargetName pTargetName
  57. ,p.TargetGroupID
  58. ,p1.TargetID sTargetID
  59. ,p1.TargetName sTargetName
  60. ,p1.ConversionValue
  61. ,p.ToTargetID
  62. ,p.IsCalculated
  63. ,p1.IsLeaf
  64. FROM v_targetdetail p
  65. INNER JOIN v_targetdetail p1 ON p1.TargetGroupID=p.TargetGroupID AND p1.IDFullPath LIKE p.IDFullPath+'%'
  66. WHERE p.IsDisplay=1
  67. )
  68. INSERT INTO @t(TargetDetailID,pTargetID,pTargetName,sTargetID,sTargetName,TargetGroupID,ConversionValue,pToTargetID,pIsCalculated)
  69. SELECT TargetDetailID,pTargetID,pTargetName,sTargetID,sTargetName,TargetGroupID,ConversionValue,pToTargetID,pIsCalculated
  70. FROM v_taregetsummaryref
  71. UNION ALL
  72. SELECT p1.TargetDetailID
  73. ,p1.pTargetID
  74. ,p1.pTargetName
  75. ,p2.ID sTargetID
  76. ,p2.Name sTargetName
  77. ,p1.TargetGroupID
  78. ,p1.ConversionValue
  79. ,p1.pToTargetID
  80. ,p1.pIsCalculated
  81. FROM dbo.ToFinanceAccount(NOLOCK) p
  82. INNER JOIN v_taregetsummaryref p1 ON p1.sTargetID=p.ID AND p1.sIsLeaf=1
  83. INNER JOIN dbo.ToFinanceAccount p2 ON p2.FullPath LIKE p.FullPath+'\%' AND ISNULL(p2.IsDelete,0)=0
  84. WHERE ISNULL(p.IsDelete,0)=0 AND p.IsLeaf!=1
  85. UPDATE p
  86. SET p.pSummaryType=ISNULL(p1.SummaryType,'Org&Date')
  87. FROM @t p
  88. LEFT JOIN ToBusinessTarget2 p1 ON p1.ID=p.pTargetID
  89. RETURN
  90. end

 

转载于:https://www.cnblogs.com/sunliyuan/p/6879461.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/753774
推荐阅读
相关标签
  

闽ICP备14008679号