精华内容
下载资源
问答
  • SQL函数

    千次阅读 2004-11-29 16:42:00
    SQL函数 使用SQL函数,您可以在一个SELECT语句的查询当中,直接计算数据库资料的平均值、总数、最小值、最大值、总和、标准差、变异数等统计。使用Recordset对象时,也可使用这些SQL函数SQL函数包括如下: Avg...

    SQL函数

      使用SQL函数,您可以在一个SELECT语句的查询当中,直接计算数据库资料的平均值、总数、最小值、最大值、总和、标准差、变异数等统计。使用Recordset对象时,也可使用这些SQL函数。

    SQL函数包括如下:

     

    Avg函数:计算查询中某一特定字段资料的算术平均值。

    Count函数:计算符合查询条件的记录数。

    Min, Max函数:传回指定字段之中符合查询条件的第一条、最末条记录的资料。

    First, Last函数:传回指定字段之中符合查询条件的最小值、最大值。

    StDev函数:计算指定字段之中符合查询条件的标准差。

    Sum函数:计算指定字段之中符合查询条件的资料总和。

    Var,函数:计算指定字段之中符合查询条件的变异数估计值。

    展开全文
  • Spark SQL函数

    千次阅读 2018-10-23 14:35:36
    Spark SQL函数

    Spark SQL函数

    一、概述
    1、来源:

    本文总结自spark 2.3.1 API文档 org.apache.spark.sql:object functions;

    2、使用:

    org.apache.spark.sql.functions中提供了约两百多个函数,大部分函数与Hive中类似,除UDF函数,均可在SparkSQL中直接使用;

    如果想要用于Dataframe 和 Dataset,可导入函数:

    import org.apache.spark.sql.functions._ 
    

    其中,大部分支持Column的函数也支持String类型的列名,这些函数的返回类型基本都是Column。

    3、函数分类:
    • 聚合函数
    • 集合函数
    • 时间函数
    • 数学函数
    • 混杂misc函数
    • 其他非聚合函数
    • 排序函数
    • 字符串函数
    • UDF函数
    • 窗口函数
    二、函数:
    1、聚合函数
    函数 作用
    approx_count_distinct count_distinct近似值
    avg 平均值
    collect_list 聚合指定字段的值到list
    collect_set 聚合指定字段的值到set
    corr 计算两列的Pearson相关系数
    count 计数
    countDistinct 去重计数 SQL中用法select count(distinct class)
    covar_pop 总体协方差(population covariance)
    covar_samp 样本协方差(sample covariance)
    first 分组第一个元素
    last 分组最后一个元素
    grouping
    grouping_id
    kurtosis 计算峰态(kurtosis)值
    skewness 计算偏度(skewness)
    max 最大值
    min 最小值
    mean 平均值
    stddev 即stddev_samp
    stddev_samp 样本标准偏差(sample standard deviation)
    stddev_pop 总体标准偏差(population standard deviation)
    sum 求和
    sumDistinct 非重复值求和 SQL中用法select sum(distinct class)
    var_pop 总体方差(population variance)
    var_samp 样本无偏方差(unbiased variance)
    variance 即var_samp
    2、集合函数
    函数 作用
    array_contains(column,value) 检查array类型字段是否包含指定元素
    explode 展开array或map为多行
    explode_outer 同explode,但当array或map为空或null时,会展开为null。
    posexplode 同explode,带位置索引。
    posexplode_outer 同explode_outer,带位置索引。
    from_json 解析JSON字符串为StructType or ArrayType,有多种参数形式,详见文档。
    to_json 转为json字符串,支持StructType, ArrayType of StructTypes, a MapType or ArrayType of MapTypes。
    get_json_object(column,path) 获取指定json路径的json对象字符串。
    json_tuple(column,fields) 获取json中指定字段值。
    map_keys 返回map的键组成的array
    map_values 返回map的值组成的array
    size array 或 map 的长度
    sort_array(e: Column, asc: Boolean) 将array中元素排序(自然排序),默认asc。
    3、时间函数
    函数 作用
    add_months(startDate: Column, numMonths: Int) 指定日期添加n月
    date_add(start: Column, days: Int) 指定日期之后n天: select date_add(‘2018-01-01’,3)
    date_sub(start: Column, days: Int) 指定日期之前n天
    datediff(end: Column, start: Column) 两日期间隔天数
    current_date() 当前日期
    current_timestamp() 当前时间戳,TimestampType类型
    date_format(dateExpr: Column, format: String) 日期格式化
    dayofmonth(e: Column) 日期在一月中的天数,支持 date/timestamp/string
    dayofyear(e: Column) 日期在一年中的天数, 支持 date/timestamp/string
    weekofyear(e: Column) 日期在一年中的周数, 支持 date/timestamp/string
    from_unixtime(ut: Column, f: String) 时间戳转字符串格式
    from_utc_timestamp(ts: Column, tz: String) 时间戳转指定时区时间戳
    to_utc_timestamp(ts: Column, tz: String) 指定时区时间戳转UTF时间戳
    hour(e: Column) 提取小时值
    minute(e: Column) 提取分钟值
    month(e: Column) 提取月份值
    quarter(e: Column) 提取季度
    second(e: Column) 提取秒
    year(e: Column) 提取年
    last_day(e: Column) 指定日期的月末日期
    months_between(date1: Column, date2: Column) 计算两日期差几个月
    next_day(date: Column, dayOfWeek: String) 计算指定日期之后的下一个周一、二…,dayOfWeek区分大小写,只接受 “Mon”, “Tue”, “Wed”, “Thu”, “Fri”, “Sat”, “Sun”。
    to_date(e: Column) 字段类型转为DateType
    trunc(date: Column, format: String) 日期截断
    unix_timestamp(s: Column, p: String) 指定格式的时间字符串转时间戳
    unix_timestamp(s: Column) 同上,默认格式为 yyyy-MM-dd HH:mm:ss
    unix_timestamp() 当前时间戳(秒),底层实现为unix_timestamp(current_timestamp(), yyyy-MM-dd HH:mm:ss)
    window(timeColumn: Column, windowDuration: String, slideDuration: String, startTime: String) 时间窗口函数,将指定时间(TimestampType)划分到窗口
    4、数学函数
    函数 作用
    cos,sin,tan 计算角度的余弦,正弦
    sinh,tanh,cosh 计算双曲正弦,正切
    acos,asin,atan,atan2 计算余弦/正弦值对应的角度
    bin 将long类型转为对应二进制数值的字符串For example, bin(“12”) returns “1100”.
    bround 舍入,使用Decimal的HALF_EVEN模式,v>0.5向上舍入,v< 0.5向下舍入,v0.5向最近的偶数舍入。
    round(e: Column, scale: Int) HALF_UP模式舍入到scale为小数点。v>=0.5向上舍入,v< 0.5向下舍入,即四舍五入。
    ceil 向上舍入
    floor 向下舍入
    cbrt Computes the cube-root of the given value.
    conv(num:Column, fromBase: Int, toBase: Int) 转换数值(字符串)的进制
    log(base: Double, a: Column) logbase(a)log_{base}(a)
    log(a: Column) loge(a)log_e(a)
    log10(a: Column) log10(a)log_{10}(a)
    log2(a: Column) log2(a)log_{2}(a)
    log1p(a: Column) loge(a+1)log_{e}(a+1)
    pmod(dividend: Column, divisor: Column) Returns the positive value of dividend mod divisor.
    pow(l: Double, r: Column) rlr^l 注意r是列
    pow(l: Column, r: Double) rlr^l 注意l是列
    pow(l: Column, r: Column) rlr^l 注意r,l都是列
    radians(e: Column) 角度转弧度
    rint(e: Column) Returns the double value that is closest in value to the argument and is equal to a mathematical integer.
    shiftLeft(e: Column, numBits: Int) 向左位移
    shiftRight(e: Column, numBits: Int) 向右位移
    shiftRightUnsigned(e: Column, numBits: Int) 向右位移(无符号位)
    signum(e: Column) 返回数值正负符号
    sqrt(e: Column) 平方根
    hex(column: Column) 转十六进制
    unhex(column: Column) 逆转十六进制
    5、混杂misc函数
    函数 作用
    crc32(e: Column) 计算CRC32,返回bigint
    hash(cols: Column*) 计算 hash code,返回int
    md5(e: Column) 计算MD5摘要,返回32位,16进制字符串
    sha1(e: Column) 计算SHA-1摘要,返回40位,16进制字符串
    sha2(e: Column, numBits: Int) 计算SHA-1摘要,返回numBits位,16进制字符串。numBits支持224, 256, 384, or 512.
    6、非聚合函数
    函数 作用
    abs(e: Column) 绝对值
    array(cols: Column*) 多列合并为array,cols必须为同类型
    map(cols: Column*) 将多列组织为map,输入列必须为(key,value)形式,各列的key/value分别为同一类型。
    bitwiseNOT(e: Column) Computes bitwise NOT.
    broadcast[T](df: Dataset[T]): Dataset[T] 将df变量广播,用于实现broadcast join。如left.join(broadcast(right), “joinKey”)
    coalesce(e: Column*) 返回第一个非空值
    col(colName: String) 返回colName对应的Column
    column(colName: String) col函数的别名
    expr(expr: String) 解析expr表达式,将返回值存于Column,并返回这个Column。
    greatest(exprs: Column*) 返回多列中的最大值,跳过Null
    least(exprs: Column*) 返回多列中的最小值,跳过Null
    input_file_name() 返回当前任务的文件名 ??
    isnan(e: Column) 检查是否NaN(非数值)
    isnull(e: Column) 检查是否为Null
    lit(literal: Any) 将字面量(literal)创建一个Column
    typedLit[T](literal: T)(implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]) 将字面量(literal)创建一个Column,literal支持 scala types e.g.: List, Seq and Map.
    monotonically_increasing_id() 返回单调递增唯一ID,但不同分区的ID不连续。ID为64位整型。
    nanvl(col1: Column, col2: Column) col1为NaN则返回col2
    negate(e: Column) 负数,同df.select( -df(“amount”) )
    not(e: Column) 取反,同df.filter( !df(“isActive”) )
    rand() 随机数[0.0, 1.0]
    rand(seed: Long) 随机数[0.0, 1.0],使用seed种子
    randn() 随机数,从正态分布取
    randn(seed: Long) 同上
    spark_partition_id() 返回partition ID
    struct(cols: Column*) 多列组合成新的struct column ??
    when(condition: Column, value: Any) 当condition为true返回value,如people.select(when(people(“gender”) === “male”, 0).when(people(“gender”) === “female”, 1).otherwise(2)) 如果没有otherwise且condition全部没命中,则返回null.
    7、排序函数
    函数 作用
    asc(columnName: String) 正序
    asc_nulls_first(columnName: String) 正序,null排最前
    asc_nulls_last(columnName: String) 正序,null排最后
    desc(columnName: String) 逆序 e.g:df.sort(asc(“dept”), desc(“age”))
    desc_nulls_first(columnName: String) 正序,null排最前
    desc_nulls_last(columnName: String) 正序,null排最后
    8、字符串函数
    函数 作用
    ascii(e: Column) 计算第一个字符的ascii码
    base64(e: Column) base64转码
    unbase64(e: Column) base64解码
    concat(exprs: Column*) 连接多列字符串
    concat_ws(sep: String, exprs: Column*) 使用sep作为分隔符连接多列字符串
    decode(value: Column, charset: String) 解码
    encode(value: Column, charset: String) 转码,charset支持 ‘US-ASCII’, ‘ISO-8859-1’, ‘UTF-8’, ‘UTF-16BE’, ‘UTF-16LE’, ‘UTF-16’。
    format_number(x: Column, d: Int) 格式化’#,###,###.##'形式的字符串
    format_string(format: String, arguments: Column*) 将arguments按format格式化,格式为printf-style。
    initcap(e: Column) 单词首字母大写
    lower(e: Column) 转小写
    upper(e: Column) 转大写
    instr(str: Column, substring: String) substring在str中第一次出现的位置
    length(e: Column) 字符串长度
    levenshtein(l: Column, r: Column) 计算两个字符串之间的编辑距离(Levenshtein distance)
    locate(substr: String, str: Column) substring在str中第一次出现的位置,位置编号从1开始,0表示未找到。
    locate(substr: String, str: Column, pos: Int) 同上,但从pos位置后查找。
    lpad(str: Column, len: Int, pad: String) 字符串左填充。用pad字符填充str的字符串至len长度。有对应的rpad,右填充。
    ltrim(e: Column) 剪掉左边的空格、空白字符,对应有rtrim.
    ltrim(e: Column, trimString: String) 剪掉左边的指定字符,对应有rtrim.
    trim(e: Column, trimString: String) 剪掉左右两边的指定字符
    trim(e: Column) 剪掉左右两边的空格、空白字符
    regexp_extract(e: Column, exp: String, groupIdx: Int) 正则提取匹配的组
    regexp_replace(e: Column, pattern: Column, replacement: Column) 正则替换匹配的部分,这里参数为列。
    regexp_replace(e: Column, pattern: String, replacement: String) 正则替换匹配的部分
    repeat(str: Column, n: Int) 将str重复n次返回
    reverse(str: Column) 将str反转
    soundex(e: Column) 计算桑迪克斯代码(soundex code)PS:用于按英语发音来索引姓名,发音相同但拼写不同的单词,会映射成同一个码。
    split(str: Column, pattern: String) 用pattern分割str
    substring(str: Column, pos: Int, len: Int) 在str上截取从pos位置开始长度为len的子字符串。
    substring_index(str: Column, delim: String, count: Int)
    translate(src: Column, matchingString: String, replaceString: String) 把src中的matchingString全换成replaceString。
    9、UDF函数
    函数 作用
    callUDF(udfName: String, cols: Column*) 调用UDF
    udf 定义UDF

    函数示例:

    import org.apache.spark.sql._
    
    val df = Seq(("id1", 1), ("id2", 4), ("id3", 5)).toDF("id", "value")
    val spark = df.sparkSession
    spark.udf.register("simpleUDF", (v: Int) => v * v)
    df.select($"id", callUDF("simpleUDF", $"value"))
    
    10、窗口函数
    函数 作用
    cume_dist() cumulative distribution of values within a window partition
    currentRow() returns the special frame boundary that represents the current row in the window partition.
    rank() 排名,返回数据项在分组中的排名,排名相等会在名次中留下空位 1,2,2,4。
    dense_rank() 排名,返回数据项在分组中的排名,排名相等会在名次中不会留下空位 1,2,2,3。
    row_number() 行号,为每条记录返回一个数字 1,2,3,4
    percent_rank() returns the relative rank (i.e. percentile) of rows within a window partition.
    lag(e: Column, offset: Int, defaultValue: Any) offset rows before the current row
    lead(e: Column, offset: Int, defaultValue: Any) returns the value that is offset rows after the current row
    ntile(n: Int) returns the ntile group id (from 1 to n inclusive) in an ordered window partition.
    unboundedFollowing() returns the special frame boundary that represents the last row in the window partition.
    展开全文
  • Database之SQLSever:SQL函数(字符串函数、数学函数、文本和图像函数、日期和时间函数、系统函数等)相关概念及其相关案例之详细攻略 目录 SQL函数(字符串函数、数学函数、文本和图像函数、日期和时间函数、...

    Database之SQLSever:SQL函数(字符串函数、数学函数、文本和图像函数、日期和时间函数、系统函数等)相关概念及其相关案例之详细攻略

     

     

     

    目录

    SQL函数(字符串函数、数学函数、文本和图像函数、日期和时间函数、系统函数等)相关概念及其相关案例

    字符串函数

    数学函数

    文本和图像函数

    日期和时间函数

    系统函数


     

     

     

    SQL函数(字符串函数、数学函数、文本和图像函数、日期和时间函数、系统函数等)相关概念及其相关案例

    SQL函数:对输入参数值返回一个具有特点关系的数值;

    字符串函数

    ASCII()函数:

    CHAR()函数:

    SELECT ASCII('s'),ASCII(1);--对s、数字求其代码值

    SELECT CHAR(115),(49)--将整数值转为对应字符

     

    LEFT()函数:

    RIGHT()函数:

    SELECT left('football',4);  --求字符的左边四位数

     

    LTRIM()函数:

       

    RTRIM()函数:

       

    STR()函数:

    --将整数3141.59转为六位的字符串当表达式超过指定长度时,返回两个*

    SELECT STR(3141.59,6,1),STR(123.45,2,2);

     

    字符串逆序的函数REVERSE(s):

    SELECT REVERSE('abc')  --字符串逆序

     

    计算字符串长度的函数LEN(str):

    -- 一个汉字也看成了一个字符

    SELECT  LEN('no'),LEN('日期'),LEN(12345);

     

    匹配字符串开始位置的函数:

    --字符串查找位置函数

    SELECTCHARINDEX('a','banana'),CHARINDEX('a','banana',4),CHARINDEX('na','banana',4);

     

    SUBSTRING()函数:

     

     

    LOWER()函数:

    UPPER()函数:

    --将大写字符转为小写并返回表达式

    SELECT LOWER('BEAUTIFUL'),LOWER('Well');

    --将小写字符转为大写

    SELECT UPPER('black'),UPPER('Black');

     

    替换函数REPLACE(s,s1,s2)

    --将字符串进行替代

    SELECT REPLACE('xxx,sqlserver2008.com','x','w');

     

     

     

    数学函数

    绝对值函数ABS(x)

    返回圆周率函数PI()

     

    SELECT ABS(2), ABS(-3.3), ABS(-33);

    SELECT PI()

    平方根函数SQRT(x)

    SELECT SQRT(9),SQRT(40)

    获取随机数的函数RAND()和RAND(x)

    SELECT RAND(),RAND(),RAND()

    四舍五入函数ROUND(x,y)

    --四舍五入法,带负号即小数点左边的两位

    SELECT ROUND(1.38,1),ROUND(1.38,0),ROUND(232.38,-1),ROUND(232.38,-2);

    符号函数SIGN(x)

    --当值是负数的时候返回-1,当正数的时候返回;

    SELECT SIGN(-21),SIGN(0),SIGN(21);

    取整函数CEILING(x)和FLOOR(x)

    --不小于该数值的最小整数;

    SELECT CEILING(-3.35),CEILING(3.35);

    --不大于该数值的最大整数;

    SELECT FLOOR(-3.35),FLOOR(3.35);

    幂函数POWER(x,y)

    SQUARE(x)和EXP(x)

    --求解的次方数值,2的-2次方数值

    SELECT POWER(2,2),POWER(2.00,-2);

    --求解e的次方

    SELECT EXP(3),EXP(-3),EXP(0);

    对数运算函数LOG(x)和LOG10(x)

    --求解以10为底3的的对数

    SELECT LOG10(3)

    角度与弧度相互转换函数RADIANS(x)和DEGREES(x)

     

     

     

    正弦函数、余弦函数

    SIN(X)、COS(X)

    反正弦函数、反余弦函数

    ASIN(X)、ACOS(X)正切函数、余切函数

    反正切函数

     

     

     

     

     

     

    文本和图像函数

    TEXTPTR函数

    --查询c1表,c2字段的使用字节的文本指针是什么

    SELECT c1,TEXTPTR(c2) FROM t1 WHERE c1=1

    TEXTVALID函数

    --检查是否存在,存在的话为

    SELECT c1,'This is text.'=TEXTVALID('t1,c2',TEXTPTR(c2))FROM t1;

     

    日期和时间函数

    获取系统当前日期函数

    返回UTC日期函数

    --得到系统当前日期值

    SELECT GETDATE();

    --得到世界标准时间日期值

    SELECT GETUTCDATE();

    获取天数的函数DAY(d)

    获取月份的函数MONTH(d)

    获取年份的函数YEAR(d)

    --获取年份的函数;

    SELECT YEAR('2010-11-12 01:01:01');

    --获取月份的函数;

    SELECT MONTH('2010-11-12 01:01:01');

    --获取天数值,11月的第天;

    SELECT DAY('2010-11-12 01:01:01');

    获取日期中指定部分字符串值的函数DATENAME(dp,d)

    SELECT DATENAME(year,'2010-11-12 01:01:01'), --返回该年份

    DATENAME(weekday,'2010-11-12 01:01:01'),     --返回该天星期几

    DATENAME(dayofyear,'2010-11-12 01:01:01');   --返回当年第几天

    获取日期中指定部分的整数值的函数DATEPART(dp,d)

     

    计算日期和时间函数DATEADD(dp,num,d)

    SELECT DATEADD(year,1,'2010-10-12 01:01:01'), --仅将年份+1年

    DATEADD(month,2,'2010-10-12 01:01:01'),     --仅将月份+1个月

    DATEADD(hour,1,'2010-10-12 01:01:01');      --仅将时间+1小时

     

    系统函数

    返回表中指定字段长度值

    USE CAD_student                    --使用CAD_student数据库

    SELECT COL_LENGTH('stu_info','s_name');   --指定

    函数返回表中指定字段的名称

    返回数据表达式数据的实际长度的函数DATALENGH()

    --查询指定返回表中2个字段名称

    SELECT COL_NAME(OBJECT_ID('test_db.dbo.stu_info'),2) 

    --查找某个函数的长度

    USE CAD_student 

    SELECT DATALENGTH(name) FROM student WHERE id=2;

    返回数据库的编号
    返回数据库的名称
    返回当前数据库默认的NULL值
    返回服务器端计算机的标识号
    返回服务器端计算机的名称
    返回数据库的对象编号
    返回用户的SID(安全标识号)
    返回用户的登陆名
    返回数据库对象的名称
    返回数据库用户的标识号
    返货数据库的用户名

    --返回数据库编号

    SELECT DB_ID('master'),DB_ID('test_db')

    --返回数据库的名称

    USE master

    SELECT DB_NAME(),DB_NAME(DB_ID('test_db'));

    --返回数据库的标识符、名称

    SELECT HOST_ID()

    SELECT HOST_NAME()

    --返回表内stu_info函数的ID号

    SELECT OBJECT_ID('test_db.dbo.stu_info');

    --返回当前登录用户的安全标识号SID

    SELECT SUSER_ID('KEVIN\Administrator')

    --返回数据库的名称

    USE CAD_student 

    SELECT USER_NAME();

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • finereport的 SQL函数

    千次阅读 2019-07-08 15:23:23
    finereport SQL函数 1.公式解释 有的时候希望某个单元格能够直接获取到数据库中的某个值,而不是先要定义一个数据集后,再去取数据。这时就可以用 SQL 函数,下面讲解下 SQL 函数的用法。 SQL(connectionName,sql...

     

    finereport SQL函数

    1. 公式解释

    有的时候希望某个单元格能够直接获取到数据库中的某个值,而不是先要定义一个数据集后,再去取数据。这时就可以用 SQL 函数,下面讲解下 SQL 函数的用法。

    SQL(connectionName,sql,columnIndex,rowIndex):返回的数据是从 connectionName 数据库中获取的 SQL 语句的表中的第 columnIndex 列第 rowIndex 行所对应的元素。

    connectionName:数据库名,字符串形式,需要用引号如"FRDemo";

    sql:SQL 语句或者数据库存储过程,字符串形式,传参数、条件等可以在此拼接实现;

    columnIndex:列序号,整型;

    rowIndex:行序号,整型。

    注:行序号可以不写,这样返回值为数据列。

     

    2. 以我们提供的数据源 FRDemo 为例

    2.1 示例(就一般的只获取某个字段内容)

    从表 STSCORE 中,我们可看到第 3 行第 3 列的值为 Alex,如下:

    现在若要直接在报表的单元格中显示数据值:Alex,而不通过先定义一个数据集后,再去取数据的方式,这里就可以使用 sql() 公式,此时只需在单元格中输入:=sql("FRDemo","SELECT * FROM STSCORE",3,3)即可,预览就可看到 Alex 值。

     

    2.2 示例(带有参数时公式的使用)

    带有参数形式的时候,直接在报表的单元格中获取数据值,写法如下:

    =sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = 'Class1' ",3)

    显示效果(班级为 Class1 的第 3 列所有值),如下:

    若需要显示某个具体值,如:显示 Jonny 的效果(即班级为 Class1 的第 3 列第 4 行的值),写法如下:

    =sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = 'Class1' ",3,4)

    若参数值为变量如为报表参数或者是某个单元格,则写法如下:

    =sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = '"+$class+"' ",3,4)

    =sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = '"+A1+"' ",3,4)

    如果传递的参数是获取当前单元格的值,即用 $$$ 作为参数时,字符串类型同样需要拼接单引号,如下:

    =sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = '"+$$$+"' ",3,4)

    注:如果参数或者单元格值有多个,那么 SQL 函数的写法如下:

    =sql("FRDemo","SELECT * FROM STSCORE where CLASSNO in ('"+$class+"') ",3,4)

    注:并且 class 参数返回值的分隔符需为',',具体请查看下拉复选框参数联动

    如果在 SQL 中还要用if进行判断并拼接模板参数时,如下:

    =sql("FRDemo","SELECT * FROM STSCORE where 1=1 "+if(len(p1)== 0,"","and CLASSNO = '"+p1+"'"),3,4) 

    以上内容就是有关 SQL 函数的介绍。

    若是调用数据库存储过程取数,建议采用官方只支持查询语句 select 进行取数,其他写法(例如下面的写法), 返回的结果不能保证,不建议使用 :

    =sql("dbname","{call  存储过程名  (参数1,参数2,...)}",1,1)

    =sql("dbname","exec 存储过程名  参数1,参数2,...",1,1)

    注:参数如果是字符串的话,参数需要用英文单引号引起来如:'参数1'。没有参数的需用?补全,例如=sql("140","{call  SCOTT.P_EMP (?) }",2,2)

     

     

     

     

    =================================================

    2.finereport  select函数使用

    1. 概述

    一般情况下,我们直接使用数据列的拖拽就能制作出想要的报表,但对于习惯编程的用户或者希望根据不同的条件控制某个单元使用哪个数据列时,我们也同样支持直接在单元格中使用来实现,这样的函数我们称为数据集函数。

    以下列出所有的数据集函数及用法。

     

    2. tablename.select

    tablename.select(colname,筛选条件1&&筛选条件2&&......)

    说明:选出数据集某列中符合条件的数据,返回结果是一个数组,相同数据不会合并。

    其中 tablename 表示数据集名称,注意是报表数据集或者是服务器数据集名,而非数据库中的表名;

    colname 表示列名,大小写不区分。

    示例:

    如数据集 ds1 取出内置 FRDemo 数据库中的销量表

    • 在单元格中输入=ds1.select(销售员),返回数据集ds1销售员列中的所有值。

    • 在单元格中输入=ds1.select(销售员,地区 = "华东"&&销量 > 200),返回数据集 ds1 华东地区销售总额超过 200 的销售员。

    • 在单元格中输入=ds1.select(销售员,地区="华东"||地区="华北"),返回数据集 ds1 华东地区或华北地区的销售员。

    注:筛选条件中的判断既可以使用单等号,也可以使用双等号;字符串也同时可以使用单引号或者是双引号,对结果均没有影响。

     

    3. tablename.group

    tablename.group(colname,筛选条件 1 && 筛选条件 2,升降序)

    说明:选出数据集某列中符合条件的数据并分组,还可以按照该列进行升降序排列。

    其中 tablename 表示数据集名称、colname 表示列名;

    升降序为布尔值,true 表示升序,false 表示降序。

    示例:

    如数据集 ds1 取出内置 FRDemo 数据库中的销量表

    在单元格中输入=ds1.group(销售员),返回数据集 ds1 销售员列中的值,并且相邻数据若相同会进行合并。

    在单元格中输入=ds1.group(销售员,true,false)或=ds1.group(销售员,,false),返回数据集 ds1 销售员列中的值,并且其中只要相同就会进行合并,结果为降序排列,中间的参数为条件,若没有条件,可以不写或者使用 true,但是不能省略。

    在单元格中输入=ds1.group(销售员,地区=="华东"),返回数据集 ds1 华东地区的销售员,并且相邻数据若相同会进行合并。

    在单元格中输入=ds1.group(销售员,地区=="华东",true),返回数据集 ds1 华东地区的销售员,并且会合并所有相同项,结果为升序排列。

     

    4. tablename.select(#0)

    说明:返回数据集 ds1 中的行号。

    示例:

    如数据集 ds1 取出内置 FRDemo 数据库中的销量表

    在单元格中输入=ds1.select(#0),数据集 ds1 中一共有 45 条数据,因此返回行号 1,2,3,......45。

     

    5. tablename.value(row,col/colname)

    说明:获取数据集 ds1 中某行某列的值。

    示例:

    如数据集 ds1 取出内置 FRDemo 数据库中的销量表

    在单元格中输入=ds1.value(3,2),返回数据集 ds1 中第 3 行第 2 列的值。

    在单元格中输入=ds1.value(3,"销售员"),返回数据集 ds1 中第 3 行销售员列的值。

    注:报表的图表标题不支持 value 函数

     

    6. 实例

    6.1 实例 1:数据集函数返回的数据进行扩展

    直接将数据列拖拽到单元格时会自动从上到下扩展。但是使用数据集函数获得数据为一个数组,是显示在一个单元格中的,需要另外给单元格设置扩展属性,数据才会进行扩展。

     

    6.2 实例 2:根据不同条件选择使用哪个字段

    在单元格中输入如下公式:

    =if(条件,ds1.group(customerid),ds2.group(customerid))

    并设置其扩展属性为从上到下。

    说明条件为真,则单元格使用数据集 ds1 中的 customerid 列,否则使用 ds2 中的 customerid 列 。

     

    6.3 实例 3:对数据集函数返回的数据再进行运算

    如公式=sum(ds1.select(销量)),返回数据集 ds1 销量列的总和。

    sum 求和公式也可以换用其他如 count、max 等。

    展开全文
  • 批量调用SQL函数

    千次阅读 2015-02-28 14:12:34
    难点:一个账号关联多表,注册过程涉及多表INSERT,使用sql函数完成。不太方便批量操作。 思路:批量调用SQL函数——“注册”。...首先:将”注册“SQL函数改为SQL存储过程,方便使用CALL调用——因
  • Spark SQL 函数全集

    万次阅读 多人点赞 2018-03-23 09:31:01
    org.apache.spark.sql.functions是一个Object,提供了约两百多个函数。 大部分函数与Hive的差不多。 除UDF函数,均可在spark-sql中直接使用。 经过import org.apache.spark.sql.functions._ ,也可以用于...
  • SQL函数大全汇总

    万次阅读 多人点赞 2020-10-19 17:05:02
    SQL中包含以下七种类型的函数: 一、聚合函数 聚合函数:返回汇总值(它对其应用的每个行集返回一个值) AVG(表达式)返回表达式中所有的平均值。仅用于数字列并自动忽略NULL值。 COUNT(表达式)返回表达式中非...
  • 几种常见的sql函数

    千次阅读 2016-10-19 19:55:56
    那么如何更加方便快捷的从数据库中取出数据对于我们来说也是至关重要的,还好有各种各样的sql函数,让我们的sql语句更加简洁明了,减轻我们的工作量,以下是我在最近工作中遇到的sql函数,希望能给大家带来帮助。...
  • SQL函数与自定义函数

    千次阅读 2017-07-30 22:55:05
    SQL强大的一个原因就是函数丰富,MYSQL为例,函数有以下几种:数学函数 字符串函数 日期和时间函数 条件判断函数 系统信息函数 加密函数 格式化函数 同时,MYSQL也支持自定义函数,这篇文章分为两个部分,限于篇幅,...
  • 1,函数在计算机语言的使用中贯穿始终,在 SQL 中我们也可以使用函数对检索出来的数据进行函数操作,比如求某列数据的平均值,或者求字符串的长度等。 2.从函数定义的角度出发,我们可以将函数分成内置...
  • 关于PostgreSQL中自定义sql函数语法

    千次阅读 2019-04-22 14:49:33
    在项目中需要用到一个sql递归操作,而且此sql片段在持久层使用较多,所以干脆直接把其sql功能封装成sql函数: CREATE OR REPLACE FUNCTION "public"."get_sub_org"("p_class_id" text, "p_dept_id" text) RETURNS...
  • MyBatis中使用SQL函数的问题

    千次阅读 2020-02-18 23:16:40
    问题描述 在MyBatis中xml中,拼接SQL函数会报错 例如使用DATE_ADD函数。 解决办法 <![CDATA[`in_time` <= DATE_ADD(#{inTime},INTERVAL 1 DAY) AND in_time >= #{inTime}]]> ...
  • SQL函数总结

    千次阅读 2010-08-13 14:55:00
    SQL函数总结汇总函数:1.COUNT 该函数将返回满足WHERE条件子句中记录的个数! SQL>SELECT COUNT(*) FROM TEAMSTATS WHERE HITS/AB;2.SUM SUM就如同它的本意一样,它返回某一列的所有...
  • ExecuteSQL函数 和 call 调用

    千次阅读 热门讨论 2016-09-04 13:27:13
    对于现阶段来说,我们用得最多的就是SQL语句,那么对于ExecuteSQL函数应该就不会很陌生了吧。 ExecuteSQL他是一种自定义函数,是ODBC中的一个API函数,用来执行由SQLPrepare创建的SQL语句。一般只要是查询数据表就会...
  • Oracle SQL函数pivot、unpivot转置函数实现行转列、列转行
  • 与 ST_Geometry 配合使用的 SQL 函数

    千次阅读 2018-05-10 10:47:33
    与 ST_Geometry 配合使用的 SQL 函数SQL 函数的列表进行以下任意操作时,会创建特定的 SQL 函数和类型:在 Oracle 或 PostgreSQL 数据库中创建地理数据库。在 Oracle 或 PostgreSQL 数据库中安装 ST_Geometry 空间...
  • SQL函数大全及示例汇总

    万次阅读 多人点赞 2019-05-07 18:14:19
    SQL中包含以下七种类型的函数: 聚合函数:返回汇总值。 转型函数:将一种数据类型转换为另外一种。 日期函数:处理日期和时间。 数学函数:执行算术运算。 字符串函数:对字符串、二进制数据或表达式执行操作。 ...
  • SQL函数详解

    千次阅读 2006-04-28 13:36:00
    SQL函数详解 SQL函数,详细描述如下: Avg函数 Avg函数,计算查询中某一特定字段资料的算术平均值。 语法为Avg(运算式)。运算式,可为字段名称、运算式、或一个函数,此函数可 以是一个内部或使用者定义的,但不能为...
  • 使用Pandas包 对数据进行处理 参考来源:... 利用pandas对MySQL中的数据进行读写: 用到了 read_sql 以及 to_sql函数 import mysql.connector import pandas as pd from sqlalchemy import creat...
  • jpa使用@Query调用自定义sql函数

    千次阅读 2019-04-04 16:40:54
    1 自定义sql函数 还是一定一定要注意,oracle大小写问题,不加双引号代表不区分大小写,加了双引号代表区分大小写,写sql语句的时候就很可能会出现诸如标识符无效或者调用函数失败等问题 CREATE OR REPLACE FUNCTION...
  • SQL函数大全

    万次阅读 热门讨论 2008-06-05 17:14:00
    SQL函数大全--聚合函数use pubsgoselect avg(distinct price) --算平均数from titleswhere type=businessgo use pubsgoselect max(ytd_sales) --最大数from titlesgo use pubsgoselect min(ytd_sales)...
  • PL/SQL函数操作实例与说明

    千次阅读 2018-03-29 15:22:44
    PL/SQL函数与过程相同,不同之处在于函数有一个返回值。创建函数建立一个独立函数可以使用CREATE FUNCTION语句创建。CREATE OR REPLACE PROCEDURE语句简化语法如下:CREATE [OR REPLACE] FUNCTION function_name [...
  • SQL函数说明大全

    千次阅读 2011-04-08 15:58:00
    一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果。这些要求包括:执行计算与数学运算、转换...下表给出了T-SQL函数的类别和描述。 函数类别 作用 聚合函数
  • Oracle SQL函数listagg实现多行字符串连接
  • sql查询,sql加减乘除运算,sql函数

    万次阅读 2018-05-31 11:44:22
    好记性不如写成博客公司要做个台帐报表,用到sql加减乘除运算,sql判断及各种函数等,如下create table temp( SELECT (@rowNO := @rowNo+1) AS '序号', a.apply_date AS '申请日期', a.merchant_name AS '...
  • sql函数平均值 总数 最小值 最大值 总和 标准差
  • 使用sql函数,您可以在一个select语句的查询当中,直接计算数据库资料的平均值、总数、最小值、最大值、总和、标准差、变异数等统计。使用recordset对象时,也可使用这些sql函数sql函数包括如下: avg函数:计算...
  • SQL函数将某个字段合并在一起

    千次阅读 2018-04-17 17:07:03
    最近遇到需要将关联表中的某个字段全部查询出来并且重新组合为一个字段,这个时候普通的连接查询就满足不了需求了,需要用到SQL函数来完成: ALTER function dbo.getResCodesByOwnerId(@OwnerId INT) returns ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 102,187
精华内容 40,874
关键字:

sql函数