精华内容
下载资源
问答
  • Oracle数据库字符集为WE8DEC,报表直接从数据库中取数时,中文乱码。 解决办法:可以使用报表的自定义函数或者集算器的自定义函数对中文进行转码操作。 集算器中脚本: A3中表达式 =A2.run(invoke(toWe8....

    Oracle数据库字符集为WE8DEC,报表直接从数据库中取数时,中文乱码。

    解决办法:可以使用报表的自定义函数或者集算器的自定义函数对中文进行转码操作。

    集算器中脚本:

    A3中表达式

    =A2.run(invoke(toWe8.toWe8,MAXDESC):MAXDESC,invoke(toWe8.toWe8,MINDESC):MINDESC)

    表达式说明:

    因为数据库中用的字符集是WE8DEC,通过jdbc取数时会乱码,需要进行一次转码,这里通过自定义函数实现,自定义函数类为toWe8.class,集算器中调用方式为:invoke(toWe8.toWe8,”aaaa”)

    在A4中使用集算器中的run函数,结合新增的自定义函数,对原有数据进行转码,此处对两个字段转码,分别为:MAXDESC,MINDESC

    点击执行,此时点击A4单元格,在右侧可看到转码后的结果。

    PS:放置jar包和class文件时,如果集算器在启动状态,需要重启集算器。

    函数源码:

    importjava.io.UnsupportedEncodingException;

    public class toWe8 {

     public static String toWe8(String str) {

                       Stringwe8="";

                       try{

                                if(str==""|| str==null){

                                         return"";                           

                                }

                                else{

                                         we8= new String(str.getBytes("X-ORACLE-WE8MSWIN1252"),"GB2312");

                                }

                       }catch (UnsupportedEncodingException e) {

                                //TODO Auto-generated catch block

                                e.printStackTrace();

                       }

       return we8;

      }

    }

    注:要使用该功能,要使用oracle的jar包:orai18n.jar,在oracle安装目录下查找或者网上下载即可。

    展开全文
  • 一、数值函数的学习  1)number(p,s)、number(p)、number(*,s),p的值为1-38之间。  2)数值类型的兼容性  --:numeric(p,s) 相当于number(p,s)  --:decimal(p,s)或dec(p,s) 相当于number(p,s)  --:...

    一、数值函数的学习

      1)number(p,s)、number(p)、number(*,s),p的值为1-38之间。

      2)数值类型的兼容性

        --:numeric(p,s) 相当于number(p,s)

        --:decimal(p,s)或dec(p,s) 相当于number(p,s)

        --:integer或int(不能指定位数)相当于number(38)

        --:smallint相当于number(38)

        --:float相当于number

        --:double precision相当于number

        --:real相当于number

      3)四舍五入函数:round(p1,n)对p1进行四舍五入,n表示保留小数点的位数,不写默认为0,可以为负,表示保留到小数点前n位。

        eg:对数字3.14进行四舍五入,保留两位小数

          select round(3.14,2) from dual;

      4)数字截取函数trunc(p1,n)对p1进行截取,保留小数点后n位,n为负数保留到小数点前n为。

        eg:对数字3.14进行截取,保留小数点后两位

          select trunc(3.14,2) from dual;

      5)取余函数mod(m,n)表示m对n做除法运算,取余数。

        eg:计算100对3取余

          select mod(100,3) from dual;

      6)取整函数

        --:向上取整ceil(m)表示取大于等于m的最小整数

        --:向下取整floor(m)表示取小于等关于m的最大整数

        eg:分别对-3.4进行向上和向下取整

          select ceil(-3.14),ceil(4.5) from dual;

    二、日期函数的学习

      1)

       --:to_char(p1,p2) 表示将日期p1按照p2的格式转换成字符串类型,如果格式中有汉字就要用双引号引起来。

         --:to_date(p1,p2) 表示字符串p1按照p2的格式转成日期类型。

      2)last_day(p1) 查看p1月份中的最后一天的日期,p1为date类型。

        eg:查询出生年月日的那个月的最后一天

          select last_day(to_date('1997-3-6','yyyy-mm-dd')) from dual;

      3)add_month(p1,n) 在日期p1的基础上增加n个月返回n个月后的日期,n可以为小数,会截取到整数增加 n也可以为负,减n个月。

        eg:推算2018年4月15日的一个月后的日期

          select add_month(to_date('2018-4-15','yyyy-mm-dd'),1) from dual;

      4)month_between(p1,p2) 计算两个日期p1和p2之间相差的月份,会存在小数情况,计算p1-p2。

        eg:计算当前系统时间和出生年月日相差的月份,保留一位小数。

          select round(month_between(sysdate,to_date('1997-3-6','yyyy-mm-dd')),1) from dual;

      5)next_day(date,num)  表示查看参数date的下一个周几的日期,date表示某一日期,num:1~7。

        eg:查看当前系统时间的下一个周日时间

         select next_day(sysdate,1) from dual;

      6)

        --:least(p1,p2,p3.....)多个参数比较显示最小的数据。

        --:greatest(p1,p2,p3....)多个参数比较显示最大的数据。

        要求:参数为同一类型,或者默认转换成第一个参数的类型,字符串比较是比较字符的ascii码。

        eg:统计3,2,1,4,5中的最大值

          select greatest(3,2,1,4,5) from dual;

      7)extract(p1 from p2) 表示从日期p2中提取分量p1,日期的分量:year、month、day、hour、minute、second,日期类型关键字:sysdate和systimestamp。

        eg:分别从sysdate和systimestamp中提取分量年

          select extract(year from sysdate),extract(yaer from systimestamp) from dual; 

        

    转载于:https://www.cnblogs.com/lyr999736/p/8850326.html

    展开全文
  • 66.194.3.158 - - [16/Dec/2013:19:57:50 +0000] "POST /user/removeIngredientFromRecipe HTTP/1.1" 200 26</p> <p>and it returns an HTTP 200. In mySQL- I'm logging all queries, and I never see the delete ...
  • create database lian0831gouse lian0831gocreate table stu(code int not null,cid varchar(20) not null,name varchar(10)...banji varchar(10),sex varchar(10),age int not null,yufen decimal(18,2),shufen dec...

    create database lian0831
    go
    use lian0831
    go
    create table stu
    (
    code int not null,
    cid varchar(20) not null,
    name varchar(10),

    banji varchar(10),
    sex varchar(10),
    age int not null,
    yufen decimal(18,2),
    shufen decimal(18,2),
    yingfen decimal(18,2),
    )
    insert into stu values(1001,'370302199101011111', '张三','一班','男',25,70,65,76)
    insert into stu values(1002,'370302199101011112', '李四','一班','女',25,76,85,66)
    insert into stu values(1003,'370302199201011111', '李琦','一班','男',24,30,95,46)
    insert into stu values(1004,'370302199301011112', '齐娜','一班','女',23,60,65,68)
    insert into stu values(1005,'370302199201011112', '王琦','二班','女',24,74,68,76)
    insert into stu values(1006,'370302199302011111', '唐骑','二班','男',23,76,67,75)
    insert into stu values(1007,'370302199103011112', '崔倩','二班','女',25,70,35,86)
    insert into stu values(1008,'370302199404011111', '牛超','二班','男',22,72,64,78)
    insert into stu values(1009,'370302199107011112', '王雪','三班','女',25,73,64,77)
    insert into stu values(1010,'370302199207011111', '张瑞','三班','男',24,77,65,77)
    insert into stu values(1011,'370302199203011111', '许可','三班','男',24,74,63,72)
    insert into stu values(1012,'370302199004011111', '余克','三班','男',26,50,45,86)
    sp_renamedb lian0831,xuesheng
    sp_renamedb xuesheng,lian0831
    select* from stu
    select yufen from stu
    --将yufen作为语文成绩显示出来
    select yufen as 语文 from stu
    --查询年龄为24的人的年龄,语文分数,性别
    select yufen,name,sex from stu where age=24
    --查询yufen在60到80之间的人的姓名
    select name from stu where yufen between 75and 80
    --查询时自动去重,并不删除,对一列去重显示
    select distinct yufen from stu where age=24
    --查询一班年龄为24的女同学的语文成绩
    select yufen as 语文,name as 姓名 from stu where age=23 and sex='女' and banji='一班'
    --查询一班的年龄为23或者24的学生姓名
    select age as 年龄,name as '姓名' from stu where age=23 or age=24 and banji ='一班'
    --查询年龄在22到23的所有数据
    select*from stu where age in(22,23)
    --查询学号不是1003和1011之间的所有数据
    select * from stu where code not in(1003,1011)
    --不在1003和1011之间的
    select * from stu where code not between 1003 and 1011

    --模糊查询

    --百分号可以表示任意字符,长度不限
    select *from stu where name like '%李%'
    --下划线表示任意找一个字符
    select *from stu where name like'许_'
    --引号里面括号外加下划线,意思为任意一个括号里的值
    select *from stu where name like'_[许可,徐克]'


    --升序降序
    --按照语文分数升序
    select *from stu order by yufen asc
    --按照数分降序
    select shufen as 数学 from stu order by shufen desc
    --按照数分降序前三名的所有数据
    select top 3* from stu order by shufen desc
    --年龄为25的数分降序排列
    select *from stu where age=25 order by shufen desc
    --年龄为25的数分降序排列,找出第一个
    select top 1*from stu where age=25 order by shufen desc


    --数学函数
    --绝对值
    select ABS(-5)--得出结果
    print abs(-7)--得出消息
    select *from stu where ABS(shufen)>=85
    --取上限 ceiling
    select yufen from stu where CEILING(yufen)>75
    --取下限 floor 取下限
    select FLOOR(1.7)
    --n次方 power
    select POWER(2,4)
    select '这是'+'年龄的平方:',POWER(age,2) from stu
    --round 四舍五入,逗号后边表示第几位
    select ROUND(222.336,1)
    --平方根
    select SQRT(4)
    --平方
    select SQUARE(4)

     

    --字符串函数
    --ASCII 返回字符串中首字母的ASCII编码
    select ASCII('name')
    select ASCII (name) from stu
    select name,ascii(name) from stu where ASCII(name)>200
    --char 将ASCII转化为对应字符
    select CHAR(77)
    select CHAR(yufen) from stu
    --charindex 在一个表达式中搜索另一个表达式,并返回起始位置
    --在逗号的后面寻找逗号前面的字符段,返回首字母的索引,索引从1开始
    select CHARINDEX('ef','abcdefghi')
    select CHARINDEX('1992',cid) from stu--返回值为0说明没有找到。
    --字符串的拼接
    select 'a'+'b'+'c'
    --difference 返回相似度,用0-4表示相似度
    select DIFFERENCE('a','abc')
    --left 逗号前是字符串,后边是从左向右截取多少
    select left('abcdef',3)
    --right 从右向左截取
    select right('123456',3)
    select LEFT(name,1)from stu where age=23
    --len 查询字符串长度,前面的空格算,后面的空格不算
    select LEN (' abc ')
    select LEN(name) from stu where yufen>=75
    --lower 将大写转化为小写
    select lower('ABCdef')
    --小写转大写
    select UPPER('abcDEF')
    --删除左边空格,相当于.net里的trimstart
    select LTRIM(' a')
    --删除右边的空格
    select RTRIM(' 123 ')
    --patindex相当于charindex,返回查找的字符段的首字母所在的索引
    select PATINDEX('%cd%','abcdefg')--查找的字符串前后要加%,与charindex不一样。
    --replace 替换显示,并不是更改
    --第一个是查找的位置字符串,第二个是要选择更换的字符段,第三个是要改成的字符段。
    select yufen,name,replace(sex,'女','lady') from stu where age=25 order by yufen asc
    --replicate 复制,可规定次数
    select REPLICATE('a',2)--显示的是被复制的两遍
    --reverse翻转字符串
    select REVERSE('abcd ')
    select REVERSE(name) from stu where age=24
    --打印空格
    select 'a'+SPACE(15)+'b'
    --str 将一个小数转化为字符串,1参数是原数据,
    --2参数是字符串长度(要大于等于原数据的整数部分的长度),
    --3参数是截取小数点后几位,小数点也算一位
    select STR(1111.111,6,3)
    --stuff 参数1是源字符串,参数2是从第几位索引开始,
    --参数3表示向后删除几位(包括索引到的开始的字符),
    --参数4表示要插入的字符串
    select STUFF('abcde12345', 1,2,'哈哈')
    --substring 从指定索引截取指定长度的字符串
    select yufen ,SUBSTRING(name,1,1)from stu where age=24 order by yufen asc

     


    --时间日期函数
    SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today'
    SELECT GETDATE()
    SELECT @@DATEFIRST--系统常量,直接返回一个值
    --dateadd,参数1是增加的项,参数2是增加多少,参数3是在哪个时间上增加
    select DATEADD(YEAR,2,'2007-01-01')--month day
    --datediff 相差多少,参数1是指定那个数,餐宿2是开始,参数3是结束
    select DATEDIFF(MONTH,'2007-01-01','2007-05-01')
    --datename 返回参数1指定的类型
    select DATENAME(WEEKDAY,'2011-1-2')--(year,month ,day,week)
    --datepart等同于datename区别于datename返回字符串,datepart返回int

    --getdate获取本地时间日期
    select GETDATE()
    --isdate判断时间日期格式是否正确,正确为1,错误为0
    select ISDATE('1-2-31')
    --精确获取时间
    select SYSDATETIME()

     

    --数据转换,函数转换
    --cast
    select CAST(123 as varchar(20))--值类型转化为字符串
    select CAST(1.23 as int)--decimal类型转化为int
    select CAST(123 as decimal(18,2))--int类型转化为decimal
    select CAST('1.23' as decimal(18,2))--字符串类型转化为decimal
    select CAST('12.3' as int)--字符串转int

    --convert--前面写类型,后边写原数据,与cast相反
    select convert(int ,'123')

     

    转载于:https://www.cnblogs.com/lanrenqilanming/p/5827956.html

    展开全文
  • HEX2DEC存储过程实现

    2020-06-30 09:58:22
    数据库当前有十进制转换为十六进制的函数hex()函数,却没有十六进制转换为十进制的函数,只能自己定义一个hex2dec(),存储过程如下: drop function if exists hex2dec; create function hex2dec(p_str varchar(18))...

    数据库当前有十进制转换为十六进制的函数hex()函数,却没有十六进制转换为十进制的函数,只能自己定义一个hex2dec(),存储过程如下:

    drop function if exists hex2dec;
    create function hex2dec(p_str varchar(18)) 
    returns bigint as hex2dec with (not variant);
      define tmpstr varchar(18);
      define v_dec  bigint;
      define i      smallint;
      let v_dec = 0;
      
      if p_str is null or length(p_str) = 0 then
        return 0;
      end if;
      
      let tmpstr = reverse(ltrim(ltrim(lower(p_str),"0x"),"0"));
      for i = 1 to length(tmpstr)
        let v_dec = v_dec + decode(substr(tmpstr,i,1),"a",10,"b",11,"c",12,"d",13,"e",14,"f",15,substr(tmpstr,i,1)::int) * pow(16,i-1);
      end for;
      return v_dec;
    end function;
    

    功能及缺陷:
    1,实现0x0至0x7fffffffffffffff之间的十六进制转换为十进制数值,超出则报错。
    2,十六进制有效字符位超过14位时,计算中要可能会丢失精度。
    3,输入可包含0x前缀,也可以不包含。

    展开全文
  • 1. NVL(表达式1,表达式2) 是一个空值转换函数 如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。 该函数的目的是把一个空值... 对日期型 NVL(hiredate,' 31-DEC-99') 2. 字段新增: ALTER T
  • PureBasic 使用Sqlite数据库

    千次阅读 2010-09-23 23:56:00
    简单的例子,Sqlite的东西都忘光了,哎……   ;Purebasic+Sqlite 使用学习 ;全局变量声明 Global DbFile.s DbFile = "" Enumeration #Button_0 #Button_1 ...函数声明 ...Dec
  • oracle wm_concat(column)函数的使用

    千次阅读 2013-08-10 23:06:19
    oracle数据库中,使用wm_concat(column)函数,可以进行字段合并 表中数据如下: 想要的结果为: 有两种实现方法 第一种:使用decode和case when进行行转列 先不进行case when select t.u_id, '语文'||t.a|| '数学'...
  • EXCEL 函数速查手册

    2019-02-21 21:06:28
    六、数据库函数(13条) ·DAVERAGE ·DCOUNT ·DCOUNTA ·DGET ·DMAX ·DMIN ·DPRODUCT ·DSTDEV ·DSTDEVP ·DSUM ·DVAR ·DVARP ·GETPIVOTDATA 七、日期与时间函数(20条) ·DATE ·DATE...
  • EXCEL函数功能整理版

    2010-05-30 15:56:24
    26 BIN2DEC 这个函数将二进制数转换为十进制数。负数用二进制数补码表示 27 CHAR 返回对应于数字代码的字符。函数 CHAR 可将其他类型计算机文件中的代码转换为字符。 28 CLEAN 删除文本中不能打印的...
  • PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加密和解密。 function encryptDecrypt($key, $string, $decrypt){ if($dec
  • 项目中经常会需要一些让人头疼的...PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加密和解密。 function encryptDecrypt($key, $string, $dec...
  • 1、基础语法 http://692088846.iteye.com/blog/2017137 (%type、%rowtype、if\if else\if elseif else、while、do..while...setserveroutputon--设置数据库输出,默认为关闭,每次重新打开窗口需要重新设置。 Dec...
  • 本书从函数功能、函数格式、参数说明、注意事项、Excel 版本提醒、案例应用、交叉参考7 个方面,全面、细致地介绍了Excel 2016/2013/2010/2007/2003 中公式和函数的使用方法、实际应用和操作技巧。最后3 章还将公式...
  • Oracle的10进制和16进制转换函数

    千次阅读 2013-03-01 15:31:42
    数据库中,常常需要将10进制转16进制,又会需要将16进制转10进制。有两个使用PL/SQL开发的函数,可以方便使用。 create or replace function f_dec2hex(p_int in varchar2) return varchar2 is  ----------...
  • (一)数据库函数............... 3 1.DAVERAGE..................... 3 2.DCOUNT.............…......... 3 3.DCOUNTA...........…......... 3 4.DGET............………......... 3 5.DMAX............……........
  • MySQL基础语法总结

    2020-06-26 13:56:34
    [在这里插入图片描述](https://img-blog.csdnimg.cn/20200626132544204.png)集合函数count——统计记录数sum()函数——求和函数avg()函数——求平均值max()函数——最大值min()函数——最小值cast(属性 as dec(n.m)
  • 数据库的数据如果存的是实体的话,读取显示的时候就需要用到这两个函数,但是html_entity_decode函数有解析乱码的时候,而且用这个函数的时候还需要指定编码类型。所以就用htmlspecialchars_decode这个好了 。可是这...
  • Oracle--to_date与to_char

    2017-03-02 14:31:01
    Oracle中日期格式比较多样,比如...我这里数据库里存储的样子是28-DEC-17,但是和下游系统约定的借口,需要给出20171228的样子。 导出的时候就可以用 to_char这个函数。 to_char(D38,'yyyymmdd') D38是一个类
  • T-SQL 数字转英文

    2020-06-16 21:50:55
    数字转英文的函数,拿走的请给个赞。 转载请注明出处,联系我: t39q@163.com 本人热衷于数据库技术及算法的研究,志同道合之士, 欢迎探讨 create FUNCTION dbo.FounctionNumToEnglish (@num NUMERIC(15, 2)) ...
  • MySQL中文参考手册

    2010-08-10 22:11:55
    7.30 CREATE FUNCTION/DROP FUNCTION (创建函数/抛弃函数)句法 7.31 MySQL对保留字很挑剔吗? 8 MySQL 教程 8.1 联接和断开服务器 8.2 输入查询 8.3 常用查询的例子 8.3.1 列的最大值 8.3.2 拥有某个列的最大值...
  • 网站会员注册审核,数据库记录审核状态值计算 审核状态使用二进制算法计算各个条件  1111 从左至右 身份证正面通过 身份证反面通过 ... 指数函数算法 或2. number bindec ( string $binary_string )二进制转为...
  • 碰到一些时间数据,准确的说不是一个具体的日期,比如是一个视频的长度,它是以int型多少秒存在数据库里的。我们希望它转换成hh:mm:ss的字符串形式输出显示。 通常的思路就是先计算这个数值里包含了多少小时,然后...
  • MYSQL

    2007-05-31 14:14:04
    7.4.8 控制流函数 7.4.9 数学函数 7.4.10 字符串函数 7.4.11 日期和时间函数 7.4.12 其他函数 7.4.13 与GROUP BY子句一起使用的函数 7.5 CREATE DATABASE (创建数据库)句法 7.6 ...
  • 绘图函数 (vlbiSkyCoverage.m) 生成一个等高线图,显示天赤道坐标 (RA, Dec) 网格中的最低共同高程(度)。 作为特定源在特定基线上与哪个 RA 相交的高程等高线的视觉指南,源的偏角轨迹叠加在计数上。 天线由名称...
  • MySQL中文参考手册.chm

    热门讨论 2007-06-11 21:31:17
    7.3.8 为列选择正确的类型 7.3.9 列索引 7.3.10 多列索引 7.3.11 使用来自其他数据库引擎的列类型 7.4 用在SELECT和WHERE子句的函数 7.4.1 分组函数 7.4.2 常用的算术运算 ...
  • 数据库处理方面,不需要在数据层借助存储过程及数据库服务器端函数封装过多的业务逻辑,因此数据库系统采用相对精巧的MySQL[6]。 该在线博客系统服务器端如果需要布置到其他主机上,则该主机必备条件如下: 1. ...
  • 易语言模块大全

    2018-08-07 13:01:30
    Hex-Dec.ec http_ec.ec HTTP访问模块 .ec HTTP访问模块1.0.ec HTTP访问模块1.1.ec IC卡读写模块 1.0.ec IP地址编辑框2.0.ec kernel模块.EC LED液晶控件模块(红色增强版).ec MD5取数据摘要.EC MDB到超级...

空空如也

空空如也

1 2 3
收藏数 58
精华内容 23
关键字:

数据库dec函数