社区
疑难问题
帖子详情
在SQL Server中怎样求一个数的余数?
railgunman
2005-12-19 01:19:45
在SQL Server中怎样求一个数的余数?
用T-SQL实现怎么实现呢?
相当于Delpi里的mod运算
...全文
1325
3
打赏
收藏
在SQL Server中怎样求一个数的余数?
在SQL Server中怎样求一个数的余数? 用T-SQL实现怎么实现呢? 相当于Delpi里的mod运算
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
OracleRoob
2005-12-19
打赏
举报
回复
%(模)
提供两数相除后的余数。
联机帮助索引中输入%,查看详细帮助信息
lxzm1001
2005-12-19
打赏
举报
回复
select 12%5
Jpp
2005-12-19
打赏
举报
回复
a%b
21天
sql
server
自学通
这是新手学习
sql
server
数
据库最有效的方法,千万不要错过呀
PB脚本
中
SQL
语句写法与
SQL
中
语句写法对照
这里罗列了,PB
中
关于控制
数
据库写法与
SQL
不同之处
SQL
Server
基本语法
SQL
Server
基本语法 的 笔记 所有语法一一罗列完全
access与
Sql
Server
之
SQL
语句比较
在编程
中
往往遇到写关于access的
sql
语句,那么您知道access与
Sql
Server
之间有那些区别吗?
MY
SQL
,
SQL
SERVER
,ORACLE常用的函
数
SQL
中
的单记录函
数
1.ASCII 返回与指定的字符对应的十进制
数
;
SQL
> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2.CHR 给出整
数
,返回对应的字符;
SQL
> select chr(54740) zhao,chr(65) chr65 from dual; ZH C -- - 赵 A 3.CONCAT 连接两个字符串;
SQL
> select concat('010-','88888888')||'转23' 高乾竞电话 from dual; 高乾竞电话 ---------------- 010-88888888转23 4.INITCAP 返回字符串并将字符串的第
一个
字母变为大写;
SQL
> select initcap('smith') upp from dual; UPP ----- Smith 5.INSTR(C1,C2,I,J) 在
一个
字符串
中
搜索指定的字符,返回发现指定的字符的位置; C1 被搜索的字符串 C2 希望搜索的字符串 I 搜索的开始位置,默认为1 J 出现的位置,默认为1
SQL
> select instr('oracle traning','ra',1,2) instring from dual; INSTRING --------- 9 6.LENGTH 返回字符串的长度;
SQL
> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from .nchar_tst; NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL)) ------ ------------ ---------------- ------------ --------- -------------------- 高乾竞 3 北京市海锭区 6 9999.99 7 7.LOWER 返回字符串,并将所有的字符小写
SQL
> select lower('AaBbCcDd')AaBbCcDd from dual; AABBCCDD -------- aabbccdd 8.UPPER 返回字符串,并将所有的字符大写
SQL
> select upper('AaBbCcDd') upper from dual; UPPER -------- AABBCCDD 9.RPAD和LPAD(粘贴字符) RPAD 在列的右边粘贴字符 LPAD 在列的左边粘贴字符
SQL
> select lpad(rpad('gao',10,'*'),17,'*')from dual; LPAD(RPAD('GAO',1 ----------------- *******gao******* 不够字符则用*来填满 10.LTRIM和RTRIM LTRIM 删除左边出现的字符串 RTRIM 删除右边出现的字符串
SQL
> select ltrim(rtrim(' gao qian jing ',' '),' ') from dual; LTRIM(RTRIM(' ------------- gao qian jing 11.SUBSTR(string,start,count) 取子字符串,从start开始,取count个
SQL
> select substr('13088888888',3,8) from dual; SUBSTR(' -------- 08888888 12.REPLACE('string','s1','s2') string 希望被替换的字符或变量 s1 被替换的字符串 s2 要替换的字符串
SQL
> select replace('he love you','he','i') from dual; REPLACE('HELOVEYOU','HE','I') ------------------------------ i love you 13.SOUNDEX 返回
一个
与给定的字符串读音相同的字符串
SQL
> create table table1(xm varchar(8));
SQL
> insert into table1 values('weather');
SQL
> insert into table1 values('wether');
SQL
> insert into table1 values('gao');
SQL
> select xm from table1 where soundex(xm)=soundex('weather'); XM -------- weather wether 14.TRIM('s' from 'string') LEADING 剪掉前面的字符 TRAILING 剪掉后面的字符 如果不指定,默认为空格符 15.ABS 返回指定值的绝对值
SQL
> select abs(100),abs(-100) from dual; ABS(100) ABS(-100) --------- --------- 100 100 16.ACOS 给出反余弦的值
SQL
> select acos(-1) from dual; ACOS(-1) --------- 3.1415927 17.ASIN 给出反正弦的值
SQL
> select asin(0.5) from dual; ASIN(0.5) --------- .52359878 18.ATAN 返回
一个
数
字的反正切值
SQL
> select atan(1) from dual; ATAN(1) --------- .78539816 19.CEIL 返回大于或等于给出
数
字的最小整
数
SQL
> select ceil(3.1415927) from dual; CEIL(3.1415927) --------------- 4 20.COS 返回
一个
给定
数
字的余弦
SQL
> select cos(-3.1415927) from dual; COS(-3.1415927) --------------- -1 21.COSH 返回
一个
数
字反余弦值
SQL
> select cosh(20) from dual; COSH(20) --------- 242582598 22.EXP 返回
一个
数
字e的n次方根
SQL
> select exp(2),exp(1) from dual; EXP(2) EXP(1) -------- --------- 7.3890561 2.7182818 23.FLOOR 对给定的
数
字取整
数
SQL
> select floor(2345.67) from dual; FLOOR(2345.67) -------------- 2345 24.LN 返回
一个
数
字的对
数
值
SQL
> select ln(1),ln(2),ln(2.7182818) from dual; LN(1) LN(2) LN(2.7182818) --------- --------- ------------- 0 .69314718 .99999999 25.LOG(n1,n2) 返回
一个
以n1为底n2的对
数
SQL
> select log(2,1),log(2,4) from dual; LOG(2,1) LOG(2,4) --------- --------- 0 2 26.MOD(n1,n2) 返回
一个
n1除以n2的
余
数
SQL
> select mod(10,3),mod(3,3),mod(2,3) from dual; MOD(10,3) MOD(3,3) MOD(2,3) --------- --------- --------- 1 0 2 27.POWER 返回n1的n2次方根
SQL
> select power(2,10),power(3,3) from dual; POWER(2,10) POWER(3,3) ----------- ---------- 1024 27 28.ROUND和TRUNC 按照指定的精度进行舍入
SQL
> select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual; ROUND(55.5) ROUND(-55.4) TRUNC(55.5) TRUNC(-55.5) ----------- ------------ ----------- ------------ 56 -55 55 -55 29.SIGN 取
数
字n的符号,大于0返回1,小于0返回-1,等于0返回0
SQL
> select sign(123),sign(-100),sign(0) from dual; SIGN(123) SIGN(-100) SIGN(0) --------- ---------- --------- 1 -1 0 30.SIN 返回
一个
数
字的正弦值
SQL
> select sin(1.57079) from dual; SIN(1.57079) ------------ 1 31.SIGH 返回双曲正弦的值
SQL
> select sin(20),sinh(20) from dual; SIN(20) SINH(20) --------- --------- .91294525 242582598 32.SQRT 返回
数
字n的根
SQL
> select sqrt(64),sqrt(10) from dual; SQRT(64) SQRT(10) --------- --------- 8 3.1622777 33.TAN 返回
数
字的正切值
SQL
> select tan(20),tan(10) from dual; TAN(20) TAN(10) --------- --------- 2.2371609 .64836083 34.TANH 返回
数
字n的双曲正切值
SQL
> select tanh(20),tan(20) from dual; TANH(20) TAN(20) --------- --------- 1 2.2371609 35.TRUNC 按照指定的精度截取
一个
数
SQL
> select trunc(124.1666,-2) trunc1,trunc(124.16666,2) from dual; TRUNC1 TRUNC(124.16666,2) --------- ------------------ 100 124.16 36.ADD_MONTHS 增加或减去月份
SQL
> select to_char(add_months(to_date('199912','yyyymm'),2),'yyyymm') from dual; TO_CHA ------ 200002
SQL
> select to_char(add_months(to_date('199912','yyyymm'),-2),'yyyymm') from dual; TO_CHA ------ 199910 37.LAST_DAY 返回日期的最后一天
SQL
> select to_char(sysdate,'yyyy.mm.dd'),to_char((sysdate)+1,'yyyy.mm.dd') from dual; TO_CHAR(SY TO_CHAR((S ---------- ---------- 2004.05.09 2004.05.10
SQL
> select last_day(sysdate) from dual; LAST_DAY(S ---------- 31-5月 -04 38.MONTHS_BETWEEN(date2,date1) 给出date2-date1的月份
SQL
> select months_between('19-12月-1999','19-3月-1999') mon_between from dual; MON_BETWEEN ----------- 9
SQL
>selectmonths_between(to_date('2000.05.20','yyyy.mm.dd'),to_date('2005.05.20','yyyy.dd')) mon_betw from dual; MON_BETW --------- -60 39.NEW_TIME(date,'this','that') 给出在this时区=other时区的日期和时间
SQL
> select to_char(sysdate,'yyyy.mm.dd hh24:mi:ss') bj_time,to_char(new_time 2 (sysdate,'PDT','GMT'),'yyyy.mm.dd hh24:mi:ss') los_angles from dual; BJ_TIME LOS_ANGLES ------------------- ------------------- 2004.05.09 11:05:32 2004.05.09 18:05:32 40.NEXT_DAY(date,'day') 给出日期date和星期x之后计算下
一个
星期的日期
SQL
> select next_day('18-5月-2001','星期五') next_day from dual; NEXT_DAY ---------- 25-5月 -01 41.SYSDATE 用来得到系统的当前日期
SQL
> select to_char(sysdate,'dd-mm-yyyy day') from dual; TO_CHAR(SYSDATE,' ----------------- 09-05-2004 星期日 trunc(date,fmt)按照给出的要
求
将日期截断,如果fmt='mi'表示保留分,截断秒
SQL
> select to_char(trunc(sysdate,'hh'),'yyyy.mm.dd hh24:mi:ss') hh, 2 to_char(trunc(sysdate,'mi'),'yyyy.mm.dd hh24:mi:ss') hhmm from dual; HH HHMM ------------------- ------------------- 2004.05.09 11:00:00 2004.05.09 11:17:00 42.CHARTOROWID 将字符
数
据类型转换为ROWID类型
SQL
> select rowid,rowidtochar(rowid),ename from scott.emp; ROWID ROWIDTOCHAR(ROWID) ENAME ------------------ ------------------ ---------- AAAAfKAACAAAAEqAAA AAAAfKAACAAAAEqAAA SMITH AAAAfKAACAAAAEqAAB AAAAfKAACAAAAEqAAB ALLEN AAAAfKAACAAAAEqAAC AAAAfKAACAAAAEqAAC WARD AAAAfKAACAAAAEqAAD AAAAfKAACAAAAEqAAD JONES 43.CONVERT(c,dset,sset) 将源字符串 sset从
一个
语言字符集转换到另
一个
目的dset字符集
SQL
> select convert('strutz','we8hp','f7dec') "conversion" from dual; conver ------ strutz 44.HEXTORAW 将
一个
十六进制构成的字符串转换为二进制 45.RAWTOHEXT 将
一个
二进制构成的字符串转换为十六进制 46.ROWIDTOCHAR 将ROWID
数
据类型转换为字符类型 47.TO_CHAR(date,'format')
SQL
> select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual; TO_CHAR(SYSDATE,'YY ------------------- 2004/05/09 21:14:41 48.TO_DATE(string,'format') 将字符串转化为ORACLE
中
的
一个
日期 49.TO_MULTI_BYTE 将字符串
中
的单字节字符转化为多字节字符
SQL
> select to_multi_byte('高') from dual; TO -- 高 50.TO_NUMBER 将给出的字符转换为
数
字
SQL
> select to_number('1999') year from dual; YEAR --------- 1999 51.BFILENAME(dir,file) 指定
一个
外部二进制文件
SQL
>insert into file_tb1 values(bfilename('lob_dir1','image1.gif')); 52.CONVERT('x','desc','source') 将x字段或变量的源source转换为desc
SQL
> select sid,serial#,username,decode(command, 2 0,'none', 3 2,'insert', 4 3, 5 'select', 6 6,'update', 7 7,'delete', 8 8,'drop', 9 'other') cmd from v$session where type!='background'; SID SERIAL# USERNAME CMD --------- --------- ------------------------------ ------ 1 1 none 2 1 none 3 1 none 4 1 none 5 1 none 6 1 none 7 1275 none 8 1275 none 9 20 GAO select 10 40 GAO none 53.DUMP(s,fmt,start,length) DUMP函
数
以fmt指定的内部
数
字格式返回
一个
VARCHAR2类型的值
SQL
> col global_name for a30
SQL
> col dump_string for a50
SQL
> set lin 200
SQL
> select global_name,dump(global_name,1017,8,5) dump_string from global_name; GLOBAL_NAME DUMP_STRING ------------------------------ -------------------------------------------------- ORACLE.WORLD Typ=1 Len=12 CharacterSet=ZHS16GBK: W,O,R,L,D 54.EMPTY_BLOB()和EMPTY_CLOB() 这两个函
数
都是用来对大
数
据类型字段进行初始化操作的函
数
55.GREATEST 返回一组表达式
中
的最大值,即比较字符的编码大小.
SQL
> select greatest('AA','AB','AC') from dual; GR -- AC
SQL
> select greatest('啊','安','天') from dual; GR -- 天 56.LEAST 返回一组表达式
中
的最小值
SQL
> select least('啊','安','天') from dual; LE -- 啊 57.UID 返回标识当前用户的唯一整
数
SQL
> show user USER 为"GAO"
SQL
> select username,user_id from dba_users where user_id=uid; USERNAME USER_ID ------------------------------ --------- GAO 25 58.USER 返回当前用户的名字
SQL
> select user from dual; USER ------------------------------ GAO 59.USEREVN 返回当前用户环境的信息,opt可以是: ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE ISDBA 查看当前用户是否是DBA如果是则返回true
SQL
> select userenv('isdba') from dual; USEREN ------ FALSE
SQL
> select userenv('isdba') from dual; USEREN ------ TRUE SESSION 返回会话标志
SQL
> select userenv('sessionid') from dual; USERENV('SESSIONID') -------------------- 152 ENTRYID 返回会话人口标志
SQL
> select userenv('entryid') from dual; USERENV('ENTRYID') ------------------ 0 INSTANCE 返回当前INSTANCE的标志
SQL
> select userenv('instance') from dual; USERENV('INSTANCE') ------------------- 1 LANGUAGE 返回当前环境变量
SQL
> select userenv('language') from dual; USERENV('LANGUAGE') ---------------------------------------------------- SIMPLIFIED CHINESE_CHINA.ZHS16GBK LANG 返回当前环境的语言的缩写
SQL
> select userenv('lang') from dual; USERENV('LANG') ---------------------------------------------------- ZHS TERMINAL 返回用户的终端或机器的标志
SQL
> select userenv('terminal') from dual; USERENV('TERMINA ---------------- GAO VSIZE(X) 返回X的大小(字节)
数
SQL
> select vsize(user),user from dual; VSIZE(USER) USER ----------- ------------------------------ 6 SYSTEM 60.AVG(DISTINCT|ALL) all表示对所有的值
求
平均值,distinct只对不同的值
求
平均值
SQL
WKS> create table table3(xm varchar(8),sal number(7,2)); 语句已处理。
SQL
WKS> insert into table3 values('gao',1111.11);
SQL
WKS> insert into table3 values('gao',1111.11);
SQL
WKS> insert into table3 values('zhu',5555.55);
SQL
WKS> commit;
SQL
> select avg(distinct sal) from gao.table3; AVG(DISTINCTSAL) ---------------- 3333.33
SQL
> select avg(all sal) from gao.table3; AVG(ALLSAL) ----------- 2592.59 61.MAX(DISTINCT|ALL)
求
最大值,ALL表示对所有的值
求
最大值,DISTINCT表示对不同的值
求
最大值,相同的只取一次
SQL
> select max(distinct sal) from scott.emp; MAX(DISTINCTSAL) ---------------- 5000 62.MIN(DISTINCT|ALL)
求
最小值,ALL表示对所有的值
求
最小值,DISTINCT表示对不同的值
求
最小值,相同的只取一次
SQL
> select min(all sal) from gao.table3; MIN(ALLSAL) ----------- 1111.11 63.STDDEV(distinct|all)
求
标准差,ALL表示对所有的值
求
标准差,DISTINCT表示只对不同的值
求
标准差
SQL
> select stddev(sal) from scott.emp; STDDEV(SAL) ----------- 1182.5032
SQL
> select stddev(distinct sal) from scott.emp; STDDEV(DISTINCTSAL) ------------------- 1229.951 64.VARIANCE(DISTINCT|ALL)
求
协方差
SQL
> select variance(sal) from scott.emp; VARIANCE(SAL) ------------- 1398313.9 65.GROUP BY 主要用来对一组
数
进行统计
SQL
> select deptno,count(*),sum(sal) from scott.emp group by deptno; DEPTNO COUNT(*) SUM(SAL) --------- --------- --------- 10 3 8750 20 5 10875 30 6 9400 66.HAVING 对分组统计再加限制条件
SQL
> select deptno,count(*),sum(sal) from scott.emp group by deptno having nt(*)>=5; DEPTNO COUNT(*) SUM(SAL) --------- --------- --------- 20 5 10875 30 6 9400
SQL
> select deptno,count(*),sum(sal) from scott.emp having count(*)>=5 group by tno ; DEPTNO COUNT(*) SUM(SAL) --------- --------- --------- 20 5 10875 30 6 9400 67.ORDER BY 用于对查询到的结果进行排序输出
SQL
> select deptno,ename,sal from scott.emp order by deptno,sal desc; DEPTNO ENAME SAL --------- ---------- --------- 10 KING 5000 10 CLARK 2450 10 MILLER 1300 20 SCOTT 3000 20 FORD 3000 20 JONES 2975 20 ADAMS 1100 20 SMITH 800 30 BLAKE 2850 30 ALLEN 1600 30 TURNER 1500 30 WARD 1250 30 MARTIN 1250 30 JAMES 950
疑难问题
22,300
社区成员
121,734
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章