`
rimoer
  • 浏览: 103158 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

函数

 
阅读更多

函数

Transact-SQL 编程语言提供三种函数:

  • 行集函数

    可以像 SQL 语句中表引用一样使用。有关这些函数的列表的更多信息,请参见行集函数

  • 聚合函数

    对一组值操作,但返回单一的汇总值。有关这些函数的列表的更多信息,请参见聚合函数

  • 标量函数

    对单一值操作,返回单一值。只要表达式有效即可使用标量函数。下表列出了标量函数的分类。

    函数分类 解释
    配置函数 返回当前配置信息。
    游标函数 返回游标信息。
    日期和时间函数 对日期和时间输入值执行操作,返回一个字符串、数字或日期和时间值。
    数学函数 对作为函数参数提供的输入值执行计算,返回一个数字值。
    元数据函数 返回有关数据库和数据库对象的信息。
    安全函数 返回有关用户和角色的信息。
    字符串函数 对字符串(charvarchar)输入值执行操作,返回一个字符串或数字值。
    系统函数 执行操作并返回有关 Microsoft® SQL Server™ 中的值、对象和设置的信息。
    系统统计函数 返回系统的统计信息。
    文本和图像函数 对文本或图像输入值或列执行操作,返回有关这些值的信息。

函数确定性

SQL Server 2000 的内置函数可以是确定的也可以是不确定的。如果任何时候用一组特定的输入值调用内置函数,返回的结果总是相同的,则这些内置函数为确定的。如果每次调用内置函数时即使用的是相同的一组特定输入值,返回的结果不总是相同的,则这些内置函数为不确定的。

函数的确定性将规定函数是否可用在索引计算列和索引视图中。索引扫描必须始终生成一致的结果。因而,只有确定性函数才能用来定义将编制索引的计算列和视图。

配置、游标、元数据、安全和系统统计函数不具有确定性。此外,下列内置函数也始终为不确定的:

@@ERROR FORMATMESSAGE NEWID
IDENTITY GETANSINULL PERMISSIONS
@@ROWCOUNT GETDATE SESSION_USER
@@TRANCOUNT HOST_ID STATS_DATE
APP_NAME HOST_NAME SYSTEM_USER
CURRENT_TIMESTAMP IDENT_INCR TEXTPTR
CURRENT_USER IDENT_SEED TEXTVALID
DATENAME IDENTITY USER_NAME

函数排序规则

使用字符串输入并返回字符串输出的函数对输出使用输入字符串的排序规则。

使用非字符输入并返回字符串的函数对输出使用当前数据库的默认排序规则。

使用多个字符串输入并返回字符串的函数,使用排序规则的优先顺序规则设置输出字符串的排序规则。有关更多信息,请参见排序规则的优先顺序

<!--RELATEDTOPICSLIST-->

请参见

CREATE FUNCTION

确定性函数和非确定性函数

用户定义函数

配置函数

这些标量函数返回当前配置选项设置的信息。

@@DATEFIRST @@OPTIONS
@@DBTS @@REMSERVER
@@LANGID @@SERVERNAME
@@LANGUAGE @@SERVICENAME
@@LOCK_TIMEOUT @@SPID
@@MAX_CONNECTIONS @@TEXTSIZE
@@MAX_PRECISION @@VERSION
@@NESTLEVEL

所有配置函数都不具有确定性。每次用一组特定输入值调用它们时,返回的结果不总是相同的。有关函数确定性的更多信息,请参见确定性函数和非确定性函数

游标函数

这些标量函数返回有关游标的信息。

@@CURSOR_ROWS

CURSOR_STATUS

@@FETCH_STATUS

所有游标函数都不具有确定性。每次用一组特定输入值调用它们时,返回的结果不总是相同的。有关函数确定性的更多信息,请参见确定性函数和非确定性函数

日期和时间函数

这些标量函数对日期和时间输入值执行操作,并返回一个字符串、数字值或日期和时间值。

下表列出日期和时间函数以及它们的确定性属性。有关函数确定性的更多信息,请参见确定性函数和非确定性函数

函数 确定性
DATEADD 具有确定性
DATEDIFF 具有确定性
DATENAME 不具有确定性
DATEPART 除了用作 DATEPART (dw, date) 外都具有确定性。dw 是工作日的日期部分,取决于由设置每周第一天的 SET DATEFIRST 所设置的值。
DAY 具有确定性
GETDATE 不具有确定性
GETUTCDATE 不具有确定性
MONTH 具有确定性
YEAR 具有确定性

字符串函数

这些标量函数对字符串输入值执行操作,返回字符串或数字值。

ASCII NCHAR SOUNDEX
CHAR PATINDEX SPACE
CHARINDEX REPLACE STR
DIFFERENCE QUOTENAME STUFF
LEFT REPLICATE SUBSTRING
LEN REVERSE UNICODE
LOWER RIGHT UPPER
LTRIM RTRIM

除 CHARINDEX 和 PATINDEX 外的所有其它内置字符串函数都具有确定性。每次用一组给定的输入值调用它们时,都返回相同的值。有关函数确定性的更多信息,请参见确定性函数和非确定性函数

数学函数

这些标量函数通常对作为参数提供的输入值执行计算,并返回一个数字值。

ABS DEGREES RAND
ACOS EXP ROUND
ASIN FLOOR SIGN
ATAN LOG SIN
ATN2 LOG10 SQUARE
CEILING PI SQRT
COS POWER TAN
COT RADIANS

<!--NOTE-->

说明算术函数(例如 ABS、CEILING、DEGREES、FLOOR、POWER、RADIANS 和 SIGN)返回与输入值相同数据类型的值。三角函数和其它函数(包括 EXP、LOG、LOG10、SQUARE 和 SQRT)将输入值投影到 float 并返回 float 值。

<!--/NOTE-->

除了 RAND 外,所有数学函数都是确定性函数。每次用一组特定输入值调用它们时,所返回的结果相同。仅当指定种子参数时,RAND 才具有确定性。有关函数确定性的更多信息,请参见确定性函数和非确定性函数

元数据函数

这些标量函数返回有关数据库和数据库对象的信息。

COL_LENGTH fn_listextendedproperty
COL_NAME FULLTEXTCATALOGPROPERTY
COLUMNPROPERTY FULLTEXTSERVICEPROPERTY
DATABASEPROPERTY INDEX_COL
DATABASEPROPERTYEX INDEXKEY_PROPERTY
DB_ID INDEXPROPERTY
DB_NAME OBJECT_ID
FILE_ID OBJECT_NAME
FILE_NAME OBJECTPROPERTY
FILEGROUP_ID @@PROCID
FILEGROUP_NAME SQL_VARIANT_PROPERTY
FILEGROUPPROPERTY TYPEPROPERTY
FILEPROPERTY

所有元数据函数都具有不确定性。每次用一组特定的输入值调用它们时,所返回的结果不总是相同。有关函数确定性的更多信息,请参见确定性函数和非确定性函数

安全函数

这些安全函数返回有关用户和角色的信息。

fn_trace_geteventinfo IS_SRVROLEMEMBER
fn_trace_getfilterinfo SUSER_SID
fn_trace_getinfo SUSER_SNAME
fn_trace_gettable USER_ID
HAS_DBACCESS USER
IS_MEMBER

所有的安全函数都具有不确定性。每次用一组特定的输入值调用它们时,所返回的结果不总是相同。有关函数确定性的更多信息,请参见确定性函数和非确定性函数

系统函数

这些标量函数对 Microsoft® SQL Server™ 中的值、对象和设置进行操作并返回有关信息。

下表列出系统函数及其确定性属性。有关函数确定性的更多信息,请参见确定性函数和非确定性函数

函数 确定性
APP_NAME 不具有确定性
CASE 表达式 具有确定性
CAST 和 CONVERT 除非与 datetimesmalldatetimesql_variant 一起使用,其它时候都具有确定性。
COALESCE 具有确定性
COLLATIONPROPERTY 不具有确定性
CURRENT_TIMESTAMP 不具有确定性
CURRENT_USER 不具有确定性
DATALENGTH 具有确定性
@@ERROR 不具有确定性
fn_helpcollations 具有确定性
fn_servershareddrives 不具有确定性
fn_virtualfilestats 不具有确定性
FORMATMESSAGE 不具有确定性
GETANSINULL 不具有确定性
HOST_ID 不具有确定性
HOST_NAME 不具有确定性
IDENT_CURRENT 不具有确定性
IDENT_INCR 不具有确定性
IDENT_SEED 不具有确定性
@@IDENTITY 不具有确定性
IDENTITY(函数) 不具有确定性
ISDATE 只有与 CONVERT 函数一起使用,指定 CONVERT 样式参数且样式参数不等于 0、100、9 或 109 时才具有确定性。样式 0 和 100 使用默认格式 mon dd yyyy hh:miAM(或 PM)。样式 9 和 109 使用默认格式加毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)。
ISNULL 具有确定性
ISNUMERIC 具有确定性
NEWID 不具有确定性
NULLIF 具有确定性
PARSENAME 具有确定性
PERMISSIONS 不具有确定性
@@ROWCOUNT 不具有确定性
ROWCOUNT_BIG 不具有确定性
SCOPE_IDENTITY 不具有确定性
SERVERPROPERTY 不具有确定性
SESSIONPROPERTY 不具有确定性
SESSION_USER 不具有确定性
STATS_DATE 不具有确定性
SYSTEM_USER 不具有确定性
@@TRANCOUNT 不具有确定性
USER_NAME 不具有确定性

系统统计函数

这些标量函数返回系统的统计信息。

@@CONNECTIONS @@PACK_RECEIVED
@@CPU_BUSY @@PACK_SENT
fn_virtualfilestats @@TIMETICKS
@@IDLE @@TOTAL_ERRORS
@@IO_BUSY @@TOTAL_READ
@@PACKET_ERRORS @@TOTAL_WRITE

所有系统统计函数都不具有确定性。每次用一组特定的输入值调用它们时,所返回的结果不总是相同。有关函数确定性的更多信息,请参见确定性函数和非确定性函数

文本和图像函数

这些标量函数对文本或图像输入值或列执行操作,返回有关这些值的信息。

PATINDEX

TEXTPTR

TEXTVALID

这些文本和图像函数都是不确定性函数,每次调用它们时,即使是用相同的一组输入值,也可能返回不同的结果。有关函数确定性的更多信息,请参见确定性函数和非确定性函数

分享到:
评论

相关推荐

    常用测试函数Rastrigin函数,函数图像,函数代码

    Rastrigin函数有几个局部极小值。它是高度多模态的,但最小值的位置是规则分布的,函数谷底不明显,次峰依次接近主谷底角度,可以很好测试各种算法的全局收敛能力,是测试智能启发式算法性能的,很多初级算法容易...

    构造函数不能声明为虚函数的原因及分析

    1. 从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有...

    函数式编程思维.pdf_函数式编程_函数式编程思维_

    例如,高阶函数(接受函数作为参数或返回函数的函数)允许对函数进行操作和组合,而λ函数(匿名函数)则提供了一种简洁的定义小功能的方式。 在函数式编程中,数据结构和算法也扮演着重要角色。例如,列表推导式...

    隶属函数在MATLAB中应用_隶属度函数_隶属函数matlab_隶属度_隶属函数在MATLAB中应用_

    在MATLAB中,隶属函数是模糊逻辑系统中的关键概念,用于描述模糊集合中元素的“模糊程度”。这篇详尽的讲解将深入探讨如何在MATLAB环境中编写和计算隶属函数,以及它们在实际应用中的作用。 一、隶属度函数概念 ...

    预测函数控制S函数程序

    预测函数控制(Predictive Function Control, PFC)是一种先进的控制策略,它利用对未来系统行为的预测来优化控制器的输出。S函数,全称Simulink Function,是MATLAB Simulink环境中的一种特殊模块,用于定义自定义...

    详解在C++中显式默认设置的函数和已删除的函数的方法

    已删除的函数还可为您提供简单语言,以防止所有类型的函数(特殊成员函数和普通成员函数以及非成员函数)的参数中出现有问题的类型提升,这会导致意外的函数调用。 显式默认设置的函数和已删除函数的好处 在 C++ 中...

    如何让类的成员函数作为回调函数

    ### 如何让类的成员函数作为回调函数 #### 一、理解回调函数的特点及应用场景 在编程领域,回调函数是一种非常常见的设计模式,它允许程序员将一个函数作为参数传递给另一个函数,在适当的时候由后者来调用这个...

    CEC2005.rar_cec 2005_cec2005 matlab_多峰测试函数_测试函数CEC2005_测试函数MATLA

    CEC2005是Competition on Evolutionary Computation(进化计算竞赛)在2005年举办的一次专门针对多峰优化问题的测试函数集合。这个竞赛旨在推动全局优化算法的发展,特别是针对那些具有复杂多模态性质的优化问题。...

    论文研究 - 在实践中将离散函数转换为连续函数的技术

    长期以来一个令人困惑的问题是离散函数如何转换为连续函数。 最近,该问题已得到解决,但本文将介绍转换过程的一些细节。 从两组数据中建立范围为-1和1的100,000个值的相关系数,从这些相关系数值创建直方图,称为...

    ArcGIS教程:半变异函数与协方差函数

    半变异函数和协方差函数是地理信息系统(GIS)中地统计分析的重要工具,尤其在ArcGIS的Geostatistical Analyst模块中被广泛应用于空间数据的建模和预测。这两种函数都是用来量化空间数据的统计相关性和空间结构,即...

    php4中文函数手册

    Apache特定函数库 图形函数库 GNU记录函数库 数组函数库 IMAP,POP3和NNTP函数库 Perl相容正规表达函数库 拼字检查函数库 LDAP函数库 正规表达函数库 BC高精准度函数库 邮件函数库 信号与共享记忆体函数库 历法...

    构造函数与析构函数

    每个类都具有构造函数和析构函数。其中,构造函数在定义对象时被调用,析构函数在对象释放时被调用。如果用户没有提供构造函数和析构函数,系统将提供默认的构造函数和析构函数。 1.构造函数 构造函数是一个与类同名...

    C/C++/Linux函数函数插桩(打桩)指南

    1. 函数插桩的基本概念 插桩是一种软件工程中的技术,主要用于在程序中添加额外的代码段,以便在特定的执行点收集信息、监控行为或执行特定操作。这一技术通常用于软件测试、性能分析、调试和日志记录。在C/C++编程...

    WinCC标准函数C语言

    WinCC标准函数C语言 WinCC标准函数是WinCC系统中的一个重要组件,提供了一系列的标准函数,用于控制和操作WinCC报警控件。这些函数可以根据需要进行修改和扩展,还可以创建自己的标准函数。 Alarm函数集是WinCC...

    MATLAB核函数算法

    在机器学习领域,核函数(Kernel Function)是一种强大的工具,用于将原始数据转换到高维空间,以便在非线性可分的情况下实现分类或回归。MATLAB作为一种强大的数学计算软件,提供了丰富的核函数库,使得研究人员和...

    maxwell常用函数.txt

    函数名称 功能描述 表达式用法 abs 绝对值函数 abs(x) 6 sin 正弦函数 sin(x) cos 余弦函数 cos(x) tan 正切函数 tan(x) asin 反正弦函数 asin(x) acos 反余弦函数 acos(x) atan 反正切函数 atan(x) atan2 ...

    特殊函数计算手册

    由特定微分方程的解定义的特殊函数有正交多项式(如Chebyshev、Laguerre和Hermite多项式),Gamma函数,Legendre函数类,Bessel函数(如球Bessel、变型Bessel、Ricatti-Bessel函数等),Kelvin函数,Airy函数,...

    Excel函数手册大全-完整版

    本资源汇总了 Excel 函数的使用详解,涵盖日期与时间函数、数学函数、字符串函数、逻辑函数、查找函数、数据库函数等多个方面,共计 174 个函数,通过 194 个经典案例,帮助用户快速掌握 Excel 函数的使用方法。...

    WindowsAPI函数参考手册.pdf是中文功能函数书籍

    《WindowsAPI函数参考手册》是2002年人民邮电出版社出版的图书,作者是《windowsapI函数参考手册》组。《Windows API 函数参考手册》是关于Microsoft Win32 API函数的完整参考手册。书中详细介绍了每一个Win32 API...

    算法测试基准函数

    在IT领域,尤其是在优化算法和人工智能的研究中,测试基准函数起着至关重要的作用。"算法测试基准函数"是一组专门设计用于评估和比较不同智能算法性能的数学模型。这些函数通常具有不同的特性,如多模态、非线性、...

Global site tag (gtag.js) - Google Analytics