A. 如何用一句sql语句实现查取值的和小于某个范围的所有值
表 a ....,total,...
表 b ...,total,...
查询 a,b 中 total 含有 各种可能相同的数据
select * from a
where total in (select total from a group by total having count(total) > 10)
union
select * from b
where total in (select total from b group by total having count(total) > 10)
;
B. Oracle用SQL查询处理百分率的时候,小于1%的显示为 .22%,有没有什么处理办法让其显示为0.22%呀。。
关于小数的显示问题。
CREATETABLEtest_tochar(
idINT,
valdecimal(10,4)
);
INSERTINTOtest_tocharVALUES(1,0.0001);
INSERTINTOtest_tocharVALUES(2,0.0012);
INSERTINTOtest_tocharVALUES(3,0.0123);
INSERTINTOtest_tocharVALUES(4,0.1234);
INSERTINTOtest_tocharVALUES(5,1.2345);
INSERTINTOtest_tocharVALUES(6,12.3456);
INSERTINTOtest_tocharVALUES(7,123.4567);
INSERTINTOtest_tocharVALUES(8,1234.5678);
INSERTINTOtest_tocharVALUES(9,12345.6789);
默认的显示方式。
SQL>COLUMN"Result"FORMATA15
SQL>SELECTid,TO_CHAR(val)ResultFROMtest_tochar;
IDRESULT
-------------------------
1.0001
2.0012
3.0123
4.1234
51.2345
612.3456
7123.4567
81234.5678
912345.6789
已选择9行。
注意到,小于1的数据,被to_char成.0001了。而不是0.0001
修改TO_CHAR的格式化参数:
SQL>SELECTid,TO_CHAR(val,'999,990.999')ResultFROMtest_tochar;
IDRESULT
-------------------------
10.000
20.001
30.012
40.123
51.235
612.346
7123.457
81,234.568
912,345.679
已选择9行。
C. sql查询大于字段的所有数据,或小于字段的所有数据
例如查询时间字段在2008-01-01(含)至2008-10-31(含)之间的记录可以这么写:
select* from 表名 where 时间字段 between '2008-01-01' AND '2008-12-31'
或者是select* from 表名 where 时间字段 >= '2008-01-01' AND 时间字段 <='2008-12-31'
如果是查询所有小于当2008-10-31(含)的所有数据即为:
select* from 表名 where 时间字段<='2008-12-31'
(3)oraclesql的查询小于扩展阅读:
SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。
有用的 Aggregate 函数:AVG() - 返回平均值,COUNT() - 返回行数,FIRST() - 返回第一个记录的值,LAST() - 返回最后一个记录的值,MAX() - 返回最大值,MIN() - 返回最小值,SUM() - 返回总和。
SQL Scalar 函数基于输入值,返回一个单一的值。
有用的 Scalar 函数:UCASE() - 将某个字段转换为大写,LCASE() - 将某个字段转换为小写,MID() - 从某个文本字段提取字符,LEN() - 返回某个文本字段的长度,ROUND() - 对某个数值字段进行指定小数位数的四舍五入,NOW() - 返回当前的系统日期和时间,FORMAT() - 格式化某个字段的显示方式。
参考资料:网络——sql
D. oracle查询sql中">=" 与">"的效率哪个高
> 效率高,尽量用>,因为>=要扫描两遍,先找出大于的记录,再找出等于的记录。
而>只需要扫描一遍,找大于的记录。
比如你要找小于等于今天的记录,平时是 日期<= trunc(sysdate)
你可以改成 日期< trunc(sysdate + 1) 效率高点。
我看书是这样的,但是我拿实际记录去试,好像>=耗资源少点,晕。
你自己拿多点的记录去试试吧。
E. sql语句查询表中一个字段的值小于另一个字段的值怎么写
直接写就行啊,比如 where dnum<alldnum
这样语句就会一行一行的比较,当这一行的dnum值小于这一行的alldnum值时就会输出。
F. sql中,查询一个字段,无论字段有多长只要截取前面小于等于四位的字段该怎样查询,急求
SELECT SUBSTRING(col ,1,4) AS Initial, Last Name
FROM Employees
语法:SUBSTRING ( expression, start, length )
SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样:
MySQL: SUBSTR(), SUBSTRING()
Oracle: SUBSTR()
SQL Server: SUBSTRING()
G. 如何使用SQL查询字段内容前两位小于“10”的所有记录
oracle中可以用下面这个语句解决你的问题:
select * from 表 where to_number(to_char(date,'yyyy'))<'2010'