1. SET QUOTED_IDENTIFIER ON

标识符可以由双引号分隔,而文字必须由单引号分隔

  1. SET QUOTED_IDENTIFIER OFF

标识符不可加引号,且必须遵守所有 Transact-SQL 标识符规则。

  1. SET NOCOUNT ON --返回受影响的行数
  1. SET DATEFIRST 1 --定义日期周一开始
  1. SET ANSI_NULLS ON

在与空值进行比较时,允许比较运算符返回 TRUE 或 FALSE

  1. 如果 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 语句仍会返回零行。
  2. SET ANSI_NULLS OFF 时,等于 (=) 和不等于
  3. (<>) 比较运算符不遵从 SQL-92 标准。使用 WHERE
  4. column_name = NULL SELECT 语句返回 column_name 中包含空值的行。使用 WHERE
  5. column_name <> NULL SELECT
  6. 语句返回列中包含非空值的行。此外,使用 WHERE column_name
  7. <> XYZ_value SELECT 语句返回所有不为
  8. 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.  
  69. INSERT INTO @t(TargetDetailID,pTargetID,pTargetName,sTargetID,sTargetName,TargetGroupID,ConversionValue,pToTargetID,pIsCalculated)
  70. SELECT TargetDetailID,pTargetID,pTargetName,sTargetID,sTargetName,TargetGroupID,ConversionValue,pToTargetID,pIsCalculated
  71. FROM v_taregetsummaryref
  72. UNION ALL
  73. SELECT p1.TargetDetailID
  74. ,p1.pTargetID
  75. ,p1.pTargetName
  76. ,p2.ID sTargetID
  77. ,p2.Name sTargetName
  78. ,p1.TargetGroupID
  79. ,p1.ConversionValue
  80. ,p1.pToTargetID
  81. ,p1.pIsCalculated
  82. FROM dbo.ToFinanceAccount(NOLOCK) p
  83. INNER JOIN v_taregetsummaryref p1 ON p1.sTargetID=p.ID AND p1.sIsLeaf=1
  84. INNER JOIN dbo.ToFinanceAccount p2 ON p2.FullPath LIKE p.FullPath+'\%' AND ISNULL(p2.IsDelete,0)=0
  85. WHERE ISNULL(p.IsDelete,0)=0 AND p.IsLeaf!=1
  86.  
  87. UPDATE p
  88. SET p.pSummaryType=ISNULL(p1.SummaryType,'Org&Date')
  89. FROM @t p
  90. LEFT JOIN ToBusinessTarget2 p1 ON p1.ID=p.pTargetID
  91. RETURN
  92. end

SqlServer自定义函数Function中调用with as的更多相关文章

  1. Sqlserver自定义函数Function

    一.FUNCTION: 在sqlserver2008中有3中自定义函数:标量函数/内联表值函数/多语句表值函数,首先总结下他们语法的异同点: 同点:1.创建定义是一样的:                ...

  2. 利用jQuery扩展接口为jQuery框架定义了两个自定义函数,然后调用这两个函数

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. Dynamics 365 CE的插件/自定义工作流活动中调用Web API示例代码

    微软动态CRM专家罗勇 ,回复325或者20190428可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 现在Web API越来越流行,有时候为了程序更加健壮,需要在插件 ...

  4. sqlserver自定义函数的创建与调用

    sqlserver中有系统提供的函数,像avg.sum.getdate()等,用户还可以自定义函数. 用户自定义的函数包括:标量函数和表值函数,其中标量函数和系统函数的用法一样,表值函数根据主体的定义 ...

  5. SQLServer自定义函数简单演示

    CREATE FUNCTION [ schema_name. ] function_name ( [ { @parameter_name [ AS ][ type_schema_name. ] par ...

  6. sqlserver自定义函数【粘】

     用户定义自定义函数像内置函数一样返回标量值,也可以将结果集用表格变量返回 用户自定义函数的类型: 标量函数:返回一个标量值 表格值函数{内联表格值函数.多表格值函数}:返回行集(即返回多个值) 1. ...

  7. PowerShell自定义函数定义及调用

    PowerShell是一种命令集,也有自己的语法定义及函数.本文主要介绍如何自定义powershell函数及如何调用,当初在写PowerShell自定义函数的时候查阅了很多资料都没找到如何调用自定义函 ...

  8. java mysql自定义函数UDF之调用c函数

    正如sqlite可以定义自定义函数,它是通过API定义c函数的,不像其他,如这里的mysql.sqlite提供原生接口就可以方便的调用其他语言的方法,同样的mysql也支持调用其它语言的方法. goo ...

  9. SQL server 自定义函数FUNCTION的使用

    原文链接:https://blog.csdn.net/lanxingbudui/article/details/81736402 前言:        在SQL server中不仅可以可以使用系统自带 ...

随机推荐

  1. 数据库中增加操作insert into的用法和查询select的用法

    insert into的用法 1.一条insert into 可以插入多条记录 2.insert into 能判断主键是否冲突,和做出冲突处理 如果主键冲突的话会报错,还能写成如果冲突就更新的形式格式 ...

  2. [代码]--ORA-01843: 无效的月份

    1.插入的日期如果是DateTime类型的,没有影响 2.如果DateTime.ToString()获取的日期,就会报错,例如(@param_datetime = cf.GetServerDateTi ...

  3. mysql8.0+修改用户密码

    查看初始安装密码登陆: [root@VM_133_71_centos yum.repos.d]# cat /var/log/mysqld.log|grep 'A temporary password' ...

  4. ctags相关

    ctags相关 首先肯定是下载安装了.这点不用多讲,根据自己的操作系统或者平台,使用相应的包管理工具或者源码编译安装都可以. 下载完之后,在想要使用ctags帮助查找的文件夹(一般是项目的根目录)下输 ...

  5. cf1066F Yet Another 2D Walking (贪心+dijkstra)

    易证我们走的时候只会从某一层的某端点走向另一端点.然后走向下一层的某端点.. 所以建图然后dijkstra就行了 调了一年以后发现dijkstra写错了 #include<bits/stdc++ ...

  6. LANMP环境编译参数查看方法

    nginx编译参数查看:/usr/local/nginx/sbin/nginx -V apache编译参数查看:cat /usr/local/apache2/build/config.nice mys ...

  7. debian8.4 ubuntu14.04双系统_debian8.4硬盘安装

    本文根据官网说明和实际安装而写,利在分享知识,但转载请注明出处以尊重知识! 一 首先在win7下利用EasyBCD添加安装选项,“添加新条目|安装|配置” 在弹出的memu.lst中填写如下内容: t ...

  8. 弹指之间 -- Slow Soul

    CHAPTER 16 慢灵魂乐 Slow Soul (8Beat) Slow Soul每小节内几乎都是以8分音符弹奏,又称之为8Beat节奏,80左右的速度最能表现此节奏特色. 示例曲目: 拥抱

  9. 构造方法和一般方法的区别(面试)-----java基础知识总结

    构造方法:对象创建时,就会调用与之对应的构造方法,对对象进行初始化: 一般方法:对象创建后,需要方法功能时才会调用. 构造方法,在对象创建时,会调用且只调用一次. 一般方法,对象创建后,可以被调用多次 ...

  10. Hadoop生态圈-Flume的组件之拦截器与选择器

      Hadoop生态圈-Flume的组件之拦截器与选择器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客只是配置的是Flume主流的Interceptors,想要了解更详细 ...