① sql 查询字段中的前几个字
可以使用:substr( string, start_position, [ length ] );string:源字符串;start_position:提取的位置,字符串中第一个位置始终为1;[ length ]:提取的字符数,如果省略,substr将返回整个字符串;
针对本例举例说明:
select * from 表名wheresubstr([D],1,2)=“10”
语句功能说明:从指定表中查询D字段第1、2个字符为“10的记录”。
(1)sql前36扩展阅读:
注意事项
语法:substr(string,start,length)
string参数:必选。数据库中需要截取的字段。
start参数:必选。
正数,从字符串指定位子开始截取;负数,从字符串结尾指定位子开始截取;0,在字符串中第一个位子开始截取。1,同理。(特殊)
length参数:可选。需要截取的长度。缺省,即截取到结束位置。
注意:若必选参数为空,那返回的结果也为空。
② SQL语句如何取前10条,10-30条记录
常用几种数据库,取前10条记录的sql语句写法。
access:
select top (10) * from table1 where 1=1
db2:
select column from table where 1=1 fetch first 10 rows only
mysql:
select * from table1 where 1=1 limit 10
sql server:
读取前10条:select top (10) * from table1 where 1=1
读取后10条:select top (10) * from table1 order by id desc
oracle:
select * from table1 where rownum<=10
取10-30条的记录:
select top 20 * from 表名 where id not in(select top 10 id from 表名)
(2)sql前36扩展阅读:
使用SQL从表中取记录。
SQL的主要功能之一是实现数据库查询。如果你熟悉Internet 引擎,那么你已经熟悉查询了。你使用查询来取得满足特定条件的信息。
多数Internet 引擎允许逻辑查询。在逻辑查询中,你可以包括特殊的运算符如AND、OR和NOT,你使用这些运算符来选择特定的记录。
如果需要扩展查询的结果,可以使用逻辑操作符OR。例如,如果执行一个搜索,搜索所有的其描述中包含Active Sever Pages OR SQL的站点,收到的列表中将包括所有其描述中同时包含两个表达式或其中任何一个表达式的站点。
如果想从搜索结果中排除特定的站点,可以使用NOT。例如,查询“Active Sever Pages ”AND NOT “SQL”将返回一个列表,列表中的站点包含Active Sever Pages,但不包含SQL。当必须排除特定的记录时,可以使用NOT。
用SQL执行的查询与用Internet搜索引擎执行的搜索非常相似。 当执行一个SQL查询时,通过使用包括逻辑运算符的查询条件,你可以得到一个记录列表。此时查询结果是来自一个或多个表。
③ sql怎么取字符串的前几位
sql语句截取字符串前几位语句:
select substr(cont_no,1,9) from for_contract
SUBSTRING ( expression , start , length )
expression:是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。
start:是一个整数,指定子串的开始位置。
length:是一个整数,指定子串的长度(要返回的字符数或字节数)。
eg:select id from users id的值是001.002$
select substring(ID,charindex('.',ID)+1,(charindex('$',ID)-charindex('.',ID)-1)) as idx
④ SQL难题:查询所有学科成绩都不及格的和总分排名前三名的
1、都不及格:
select
a.name,a.lesson,a.score
from
test
a,
(select
name,count(lesson)
as
cl
from
test
group
by
name)
b,
(select
name,count(lesson)
as
cl
from
test
where
score
<
60
group
by
name)
c
where
a.name=b.name
and
a.name=c.name
and
b.cl=c.cl
2、总分前三:(不太合理,学科不一样,靠得越多,总分越高,业务需求有问题)
select
top
3
name,sum(score)
as
总分
from
test
gropu
by
name
order
by
2
回答者:
shaoshuai_bd
-
经理
五级
10-22
12:36
第二道题,二楼的写法是sql
server的写法,在oracle中是不能执行的,下面是
oracle中的写法
select
*
from
(
select
name,sum(score)
as
z
from
a
group
by
name
order
by
z
desc)
where
rownum<=2
⑤ SQL 一张表的主键是36位的UUID,用以下语句语句插入数据是否会出现重复主键
不会重复,你都使用newid函数了,每次会自动生成不同的uuid的
⑥ sql中定义了一个CHAR36的字段,现在想让他自己生成6个字符,要唯一的。怎么写语句
SQL SERVER 这样产生6位随机字符,可以复制行来增加位数,试试吧
SELECT
SUBSTRING('',CONVERT(INT,FLOOR(RAND()*36+1)),1)
+SUBSTRING('',CONVERT(INT,FLOOR(RAND()*36+1)),1)
+SUBSTRING('',CONVERT(INT,FLOOR(RAND()*36+1)),1)
+SUBSTRING('',CONVERT(INT,FLOOR(RAND()*36+1)),1)
+SUBSTRING('',CONVERT(INT,FLOOR(RAND()*36+1)),1)
+SUBSTRING('',CONVERT(INT,FLOOR(RAND()*36+1)),1)
⑦ sql 怎么取 字符串的前几位
sql中,使用LEFT函数即可取到字符串的前几位。
LEFT(c, number_of_char)用于返回某个被请求的文本域的左侧部分,其中c代表被请求的文本域,number_of_cha代表需要取出的字符串位数。如“LEFT("..com", 6)”即可取得字符串""。
(7)sql前36扩展阅读:
sql中,常用函数介绍:
1、AVG():返回平均值
2、COUNT():返回行数
3、FIRST():返回第一个记录的值
4、LAST():返回最后一个记录的值
5、MAX():返回最大值
6、MIN():返回最小值
7、SUM():返回总和
8、UCASE():将某个字段转换为大写
9、LCASE():将某个字段转换为小写
10、MID():从某个文本字段提取字符
11、LEN():返回某个文本字段的长度
12、ROUND():对某个数值字段进行指定小数位数的四舍五入
13、NOW():返回当前的系统日期和时间
14、FORMAT():格式化某个字段的显示方式
15、INSTR():返回在某个文本域中指定字符的数值位置
16、LEFT():返回某个被请求的文本域的左侧部分
17、RIGHT():返回某个被请求的文本域的右侧部分
⑧ sql 取字符前几位
left(字符串,要取的字符数)
从左边第一个起取字符串的N个字符
楼上正解