zoukankan      html  css  js  c++  java
  • 报表系统 表达式详解

     

    单元格表达式

    单元格表达式直接在单元格中定义,例如:=sum(A1:A2),类似MS Excel计算公式。当前版本支持以下函数:

    ABS、ACOS、ACOSH、AND、ASIN、ASINH、ATAN、ATAN2、ATANH、AVERAGE、AVERAGEA、COS、COSH、COUNT、COUNTA、COUNTBLANK、COUNTIF、DATE、DAY、DOLLAR、EXP、FACT、INT、IF、LN、LOG、LOG10、MAX、MIN、MOD、MONTH、NOT、NOW、ODD、OR、PI、POWER、RADIANS、RAND、ROUND、ROUNDDOWN、ROUNDUP、SIGN、SIN、SINH、SQRT、SUM、SUMSQ、TAN、TANH、TIME、TODAY、TRUNC、YEAR、WEEKDAY、FALSE、TRUE、EVEN、TRIM、CEILING、FLOOR、CONCATENATE、DEGREES、FIXED、HOUR、MINUTE、SECOND、ISEVEN、ISODD、ISBLANK、ISNA、ISLOGICAL、ISERR、ISERROR、ISNONTEXT、ISNUMBER、ISTEXT、LEN、LEFT、RIGHT、MID、LOWER、UPPER、SUMIF、COUNTIF、AVERAGEIF、HLOOKUP、VLOOKUP、RANK

    每个函数具体如何应用,请参考EXCEL函数帮助文档。

    数据列筛选条件表达式

    数据列筛选条件表达式由函数、算术运算符、关系运算符以及逻辑运算符构成。

    • 算术运算符包含:+、-、*、/、MOD(取余);

    • 关系运算符包含:=、<>、<、<=、>=、>、LIKE(形如)、IN(属于)、NOTIN(不属于)、BETWEEN(介于)、ISNOTNULL(有值)、ISNULL(无值)

    • 逻辑运算符包含:&&(与)、||(或)、!(非)

    • 函数包含以下几大类:

      • 数值(含货币)函数

      • 日期和时间函数

      • 字符串函数

      • 集合函数

      • 转换函数

      • 类型不定函数

      • 系统函数

      • 常量

    数值(含货币)函数

    FLOOR(<数值表达式>)

    此函数返回数值表达式的整数部分。例如:FLOOR(125.34) 返回结果为:125。参数类型必须是数值型或者货币型。

    ROUND(<数值表达式>,整数)

    此函数整数部分规定保留的小数点位数。例如:ROUND (125.256,2) 返回结果为:125.26。

    RAND()

    返回一个0至1之间随机数。

    ABS(<数值表达式>)

    此函数返回数值表达式的绝对值。例如:ABS (-125) 返回结果为:125。参数类型必须是数值型或者货币型。

    日期表达式

    YEAR(<日期表达式>)

    此函数返回日期表达式的年份值。例如:YEAR(#2007.1.28#) 返回结果为:2007。

    MONTH(<日期表达式>)

    此函数返回日期表达式的月份值。例如:MONTH(#2007.1.28#) 返回结果为:1。

    DAY(<日期表达式>)

    此函数返回日期表达式的天数。例如:DAY(#2007.1.28#) 返回结果为:28。

    QUARTER(<日期表达式>)

    此函数返回日期表达式的季度值。例如:QUARTER(#2007.1.28#) 返回结果为:1。

    WEEK(<日期表达式>)

    此函数返回日期表达式的周数。例如:WEEK(#2007.1.28#) 返回结果为:4。

    DAYOFWEEK(<日期表达式>)

    此函数返回日期表达式的星期数。注:星期日返回1,星期一返回2,依次类推。

    例如:DAYOFWEEK (#2007.1.28#) 返回结果为:1

    HOUR(<日期表达式>)

    此函数返回日期表达式的小时数。例如:HOUR(#2007.1.28 09:59:42#) 返回结果为:9

    MINUTE(<日期表达式>)

    此函数返回日期表达式的分钟数。例如:MINUTE(#2007.1.28 09:59:42#) 返回结果为:59。

    SECOND(<日期表达式>)

    此函数返回日期表达式的秒数。例如:SECOND(#2007.1.28 09:59:42#) 返回结果为:42。

    THISDATE

    此函数返回当前日期。

    THISYEAR

    此函数返回当前年份值。

    THISQUARTER

    此函数返回当前季度值。

    THISMONTH

    此函数返回当前月份值。

    THISWEEK

    此函数返回当前周数。

    THISDAYOFWEEK

    此函数返回当前星期数。注:星期日返回1,星期一返回2,依次类推

    THISHOUR

    此函数返回当前时间小时部分。

    THISMINUTE

    此函数返回当前时间分钟部分。

    THISSECOND

    此函数返回当前时间秒部分。

    YEARBETWEEN(<日期表达式1>,<日期表达式2>)

    此函数返回日期表达式1到日期表达式2的年份值。例如:YEARBETWEEN(#2005.07.03#,#2007.07.28#) 返回结果为:2。

    MONTHBETWEEN(<日期表达式1>,<日期表达式2>)

    此函数返回日期表达式1到日期表达式2的月份值。例如:MONTHBETWEEN(#2007.01.28#,#2007.07.28#) 返回结果为:6。

    DAYBETWEEN(<日期表达式1>,<日期表达式2>)

    此函数返回日期表达式1到日期表达式2的天数。例如:DAYBETWEEN(#2007.01.03#,#2007.01.28#) 返回结果为:25。

    QUARTERBETWEEN(<日期表达式1>,<日期表达式2>)

    此函数返回日期表达式1到日期表达式2的季度值。例如:QUARTERBETWEEN(#2007.01.03#,#2007.07.28#) 返回结果为:2。

    WEEKBETWEEN(<日期表达式1>,<日期表达式2>)

    此函数返回日期表达式1到日期表达式2的周数。例如:WEEKBETWEEN(#2007.01.03#,#2007.01.28#) 返回结果为:3。

    HOURBETWEEN(<日期表达式1>,<日期表达式2>)

    此函数返回日期表达式1到日期表达式2的小时值。

    例如:HOURTWEEN(#2007.01.03 09:59:42#,#2007.01.24 10:59:42#) 返回结果为:1

    MINUTEBETWEEN(<日期表达式1>,<日期表达式2>)

    此函数返回日期表达式1到日期表达式2的分钟值。

    例如:MINUTEBETWEEN(#2007.01.03 09:59:42#,#2007.01.24 10:59:42#) 返回结果为:60

    SECONDBETWEEN (<日期表达式1>,<日期表达式2>)

    此函数返回日期表达式的秒部分。例如:SECONDBETWEEN(#2007.1.28 09:59:42#) 返回结果为:42

    ADDYEAR(<日期表达式>,整数)

    此函数返回日期表达式增加指定年数后的日期值。例如:ADDYEAR(#2005.07.03#,2) 返回结果为:#2007.07.03#。

    ADDMONTH(<日期表达式>,整数)

    此函数返回日期表达式增加指定月数后的日期值。例如:ADDMONTH(#2007.07.03#,2) 返回结果为:#2007.09.03#。

    ADDDAY(<日期表达式>,整数)

    此函数返回日期表达式增加指定日数后的日期值。例如:ADDDAY(#2005.07.03#,2) 返回结果为:#2005.07.05#。

    ADDQUARTER(<日期表达式>,整数)

    此函数返回日期表达式增加指定季节数后的日期值。例如:ADDQUARTER(#2007.01.03#,2) 返回结果为:#2007.07.03#。

    ADDWEEK(<日期表达式>,整数)

    此函数返回日期表达式增加指定周数后的日期值。例如:ADDWEEK(#2007.01.03#,3) 返回结果为:#2007.01.24#。

    ADDHOUR(<日期表达式>,整数)

    此函数返回日期表达式增加指定小时后的日期值。例如:ADDHOUR(#09:59:42#,1) 返回结果为:#10:59:42#。

    ADDMINUTE(<日期表达式>,整数)

    此函数返回日期表达式增加指定分钟后的日期值。例如:ADDMINUTE(#09:59:42#,2) 返回结果为:#10:01:42#。

    ADDSECOND (<日期表达式>,整数)

    此函数返回日期表达式增加指定秒后的日期值。例如:ADDSECOND (#09:59:42#,1) 返回结果为:#09:59:43#。

    字符串函数

    CONCAT(<字符串表达式1>,<字符串表达式2>,...,<字符串表达式n>)

    此函数连接多个字符串。例如:CONCAT(“abc”,”def”,”g”) 返回结果为:”abcdefg”。

    TRIM(<字符串表达式>)

    此函数截取字符串表达式左右两边多余空格。例如:TRIM(“ abc “) 返回结果为:”abc”。

    LTRIM(<字符串表达式>)

    此函数截取字符串表达式左边多余空格。例如:LTRIM(“ abc “) 返回结果为:”abc “。

    RTRIM(<字符串表达式>)

    此函数截取字符串表达式左边多余空格。例如:RTRIM(“ abc “) 返回结果为:” abc”。

    SUBSTR(<字符串表达式>,起始位,长度>)

    此函数返回字符串表达式从[起始位]开始共[长度]个字符的子串。例如:SUBSTR(“abcd”, 2, 2) 返回结果为:”bc”。

    STRLEN(<字符串表达式>)

    此函数返回字符串表达式所包含的字符个数。例如:STRLEN(“abcd你好”) 返回结果为:6。

    LEFT(<字符串表达式>,长度>)

    此函数返回字符串表达式左边开始共[长度]个字符的子串。例如:LEFT(“abcd你好”, 5) 返回结果为:”abcd你”。

    RIGHT(<字符串表达式>,长度>)

    此函数返回字符串表达式右边开始共[长度]个字符的子串。例如:左串(“abcd你好”, 3) 返回结果为:”d你好”。

    STRPOS(<字符串表达式1>,<字符串表达式2>)

    此函数返回字符串表达式1中首次出现字符串表达式2的位置,字符位置从1开始计数,未搜索到时返回0。 例如:STRPOS(“abcd你好”, “bcd”) 返回结果为:2。

    REPLACE(<待搜索的字符串表达式>,<待查找的字符串表达式>,<替换用的字符串表达式>)

    此函数返回用替换用的字符串表达式替换待搜索的字符串表达式中出现的所有待查找的字符串表达式。例如:REPLACE(“abcdefghicde”,”cde”,”xxx”) 返回结果为:abxxxfghixxx。

    REG(<字符串表达式>,<正则表达式>)

    此函数返回字符串表达式是否满足正则表达式规则,满足返回1,否则返回0。例如:REG(“fo o”, “^fo o$”) 返回结果为:1。

    PINYINQUANMA(<字符串表达式>)

    返回<字符串表达式>对应的拼音。 例如:PINYINQUANMA(“中国”),返回结果为:zhongguo。

    PINYINJIANMA(<字符串表达式>)

    返回<字符串表达式>对应的拼音简称。 例如:PINYINJIANMA(“中国”),返回结果为:zg。

    集合函数

    SET(<表达式1>,<表达式2>,<表达式3>)

    例如:集合(1,2,3,4),集合(”abc”,”cde”,”efg”)。

    转换函数

    STRTODATETIME (<字符串表达式>)

    把字符串表达式转换为日期型。

    STRTOFLOAT(<字符串表达式>)

    把字符串表达式转换为数值型。

    FLOATTOSTR(<数值表达式>)

    把数值表达式转换为字符型。

    FLOATTODATETIME(<数值表达式>)

    把数值表达式转换为日期型。

    DATETIMETOSTR(<日期表达式>)

    把日期表达式转换为字符型。

    类型不定函数

    IF THEN [ELSE] END

    例如:IF 商品=“牛奶” THEN 0.02 ELSE 0.1 END,其中ELSE部分可以省略。

    CASE IF cexpr1 THEN expr1 IF cexpr2 THEN expr2 [ELSE exprn] END

    例如:CASE IF 商品=“牛奶” THEN 0.02

    IF 商品=“面包” THEN 0.015

    IF 商品=“电视” THEN 0.15

    ELSE 0.1 END

    GREATER (表达式1,表达式2)

    返回表达式1、表达式2中的较大者。

    LESS (表达式1,表达式2)

    返回表达式1、表达式2中的较小者。

    系统函数

    LOGIN_UNIT

    返回当前单位名称。

    LOGIN_USER

    返回当前登录系统的用户姓名。

    LOGIN_DEPT

    返回当前登录系统的用户所在的部门名称。

    LOGIN_PRIV

    返回当前登录系统的用户所在的角色名称。

    WRITE_DEPT

    返回当前数据的创建者所在部门名称。

    WRITER

    返回当前数据的创建者姓名。

    WRITETIME

    返回当前数据的创建日期。

    SYSDATE

    返回系统时间戳。

    LOGIN_USER_ID

    返回当前登录用户USER_ID。

    LOGIN_DEPT_ID

    返回当前登录用户所属部门DEPT_ID。

    LONG_DEPT_NAME

    返回当前登录用户所属部门长部门名称,例如:分公司一/财务部。

    LOGIN_OTHER_PRIV

    返回当前登录用户辅助角色ID。

    LOGIN_UID

    返回当前登陆用户UID。

    常量

    TRUE

    FALSE

    NULL

    #2007.1.28#:

    返回2007年1月28日。

    #1.28#:

    返回本年1月28日。注意:日期常量用"#” 引起来。

    "张三”:

    返回字符常量张三。注意:字符常量用””(英文半角双引号)引起来。

  • 相关阅读:
    nginx配置选项try_files详解
    Centos7.4 升级openSSH的操作步骤
    docker运行postgresql出现could not locate a valid checkpoint record的产生原因及如何解决
    浅析JavaScript类型化数组TypedArray理解、为什么使用TypedArray、类型数组与普通数组的区别及其常见应用(处理二进制数据类型)
    浅析Uint8Array语法及常见使用、Uint8Array.slice与Uint8Array.subarray区别(是否指向同一个内存空间)、new Uint8Array(typedArray)构造函数对typedArray的引用问题(保持同一个引用)、Uint8Array与String互相转换
    浅析JavaScript如何检测文件的类型:区分文件类型的本质、关于魔数的理解、input accept文件检测存在的问题、如何检测修改后缀名后的文件类型、推荐一个文件检测JS库-file-type库及其检测原理
    推荐4款高星星JS库:canvas库-Fabric.js、JavaScript客户端文件上传库-FilePond、客户端保存文件解决方案-FileSaver、JavaScript在线解压 ZIP 文件-JSZip
    浅析 ProgressEvent 接口及其应用:上传文件进度事件
    浅析Array.reduce()语法、reduce执行流程、常见使用(所有值求和、提供初始值累加所有值、二维转一维、计算元素出现个数、按属性分类、顺序执行promise、功能型管道函数等)
    725. 完全数
  • 原文地址:https://www.cnblogs.com/tongdaoa/p/15033272.html
Copyright © 2011-2022 走看看