这个是一个csdn上有人问的一个题目,具体的题目如下:

数据库表 表1

id name

1 DB-235-aa-fc

2 DB-275-ag-fw

3 DB-235-ajj-fj

4 DB-4444444-ss-fq

5 DB-2222-kkk-fh

6 DB-997-ii-fw

. .

. .

里面几千,几万条

在数据库中写查询语句,查询name字段,第一个‘-’和第二个‘-’之间的最大的那个数!

也就是把第4条数据查询出来!

这里给出了两种解法:(1)是利用游标(在利用游标之前,会先过滤一下数据集,让数据集的记录变小,这样可以大大的缩小游标所花的时间)具体的Sql代码如下:

create table #t

(

id int not null identity(1,1) primary key,

name varchar(100) not null

)

insert #t(name)

values

('DB-235-aa-fc'),

('DB-275-ag-fw'),

('DB-235-ajj-fj'),

('DB-4444444-ss-fq'),

('DB-2222-kkk-fh'),

('DB-997-ii-fw')

--下面的select就是缩小了结果集

select *

into #lists

from #t

where len(SUBSTRING(name,1,CHARINDEX('-',name,4)-1))

in(

select max(len(SUBSTRING(name,1,CHARINDEX('-',name,4)-1))) from #t)

declare @name varchar(100)

declare @id int

declare @max int

set @max=-1

declare c cursor for

select * from #lists

open c

fetch next from c into @id,@name

while @@FETCH_STATUS=0

begin

set @name=SUBSTRING(@name,1,CHARINDEX('-',@name,4)-1)

set @name=SUBSTRING(@name,4,LEN(@name)-3)

if(CAST(@name as int)>@max)

begin

set @max=CAST(@name as int)

set @id=@id

end

fetch next from c into @id,@name

end

close c

deallocate c

select * from #lists

where id=@id

drop table #lists

drop table #t

方法2:直接的操作,利用MAX(int),Sql代码如下:

create table #t

(

id int not null identity(1,1) primary key,

name varchar(100) not null

)

insert #t(name)

values

('DB-235-aa-fc'),

('DB-275-ag-fw'),

('DB-235-ajj-fj'),

('DB-4444444-ss-fq'),

('DB-2222-kkk-fh'),

('DB-997-ii-fw')

select * from #t

where SUBSTRING(SUBSTRING(name,1,CHARINDEX('-',name,4)-1),4,LEN(SUBSTRING(name,1,CHARINDEX('-',name,4)-1))-3)

in(

select max(CAST(SUBSTRING(SUBSTRING(name,1,CHARINDEX('-',name,4)-1),4,LEN(SUBSTRING(name,1,CHARINDEX('-',name,4)-1))-3) AS int))

from #t

)

drop table #t

结果都是相同的:4    DB-4444444-ss-fq

mysql查询一个字段最大值_查询表中某一个字段的数字最大值的记录相关推荐

  1. 抛物线中四边形面积最大值_函数中动点与四边形面积最大值

    [思路分析] (1)根据已知条件中,当自变量x=-1和x=5时,函数值是相等的可以求出抛物线的对称轴为x=2,再把对称轴方程和直线l的方程联立,可以求得抛物线的顶点坐标,由此我们可以设出抛物线的顶点式 ...

  2. 查询一个表中一个字段相同的数据_最实用MySQL 查询当天、本周,本月、上一个月的数据...

    MySQL 查询当天.本周,本月.上一个月的数据 mysql查询当天的所有信息: SELECT * FROM 表名 WHERE year(时间字段名)=year(now()) and month(时间 ...

  3. mysql查询数学成绩信息_【MySQL】:利用DQL查询表中的数据

    DQL(Data Query Language):数据查询语言,用以查询数据库中表的记录(数据). CREATE TABLE exam( id INT PRIMARY KEY AUTO_INCREME ...

  4. mysql 查询当天、本周、本月、上一个月、季度等数据

    今天 select * from 表名 where to_days(时间字段名) = to_days(now());昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...

  5. 设计一个方法,将一个字符串中每一个英文单词的首字母大写,返回一个新的字符串

    学习后的练习内容,留个纪念~ /*** 设计一个方法,将一个字符串中每一个英文单词的首字母大写,返回一个新的字符串*/ public class NewStr {public static void ...

  6. mysql查询唯一单词_MySql从表中获取唯一单词列表,其中字段中的值用逗号分隔

    我不确定这是否可以用纯SQL(MySQL),但无论如何我会问.我有这样一张桌子: ID TAGS ----------------------------- 1 word1,word2,word3 2 ...

  7. mysql 查询多个总和_使用MySQL查询选择多个总和,并在单独的列中显示?

    要使用MySQL查询选择多个总和列并将它们显示在单独的列中,您需要使用CASE语句.语法如下:SELECT SUM( CASE WHEN yourColumnName1='yourValue1' TH ...

  8. php中mysql查询条件为数组_请教php中数组做为mysql查询条件wherexxinarray,怎么处理...

    原先想着把数组 $customerid 拆分出来,判断长度给不同的变量,变量多少还要再判断,然后写 下边的mysql查询,有些麻烦,请教有没有好的方法,谢了! -------------------- ...

  9. mysql查询学号和姓名_数据库SQL语句中 查询选修了全部课程的学生的学号和姓名...

    一.SQL语言查询选修了全部课程的学生的学号和姓名. 两种解决途径: 第一种: 我们可以表示为在SC表中某个学生选修的课程数等于C表中课程总数.相应的SQL语言如下: selectS#,SNAMEfr ...

最新文章

  1. 为何把日志打印到控制台很慢?
  2. java 反射遍历_java使用反射遍历类的字段
  3. 【王俊杰de人工智能实战课】第6次作业
  4. slf4j + logback 输出日志:mybatis sql语句
  5. cvc 降噪_耳机降噪技术有哪几种?
  6. CodeForces - 1312E Array Shrinking(区间dp)
  7. 以撩妹为例,5分钟让你秒懂深度学习!
  8. 架构专家高磊:缓存为王——无线缓存架构优化
  9. Mysql数据库——数据表的优化、外键与三范式
  10. Python使用系统聚类算法对随机元素进行分类
  11. Bzoj 4147: [AMPPZ2014]Euclidean Nim(博弈)
  12. 从文件中读取一个long型数_Python 从文件中读取数据
  13. xp谷歌浏览器时间快了_Win7系统零日漏洞曝光,谷歌建议:升级Windows 10
  14. ps3 移动硬盘 安装linux,ps3内置硬盘安装方法
  15. opencv4图像基本变化
  16. xlsx格式表格汉字批量转音节,不带声调(python)
  17. Newton Interpolation
  18. webdriver中的截图截图方法
  19. Jquery实现简单轮播图效果
  20. 二分查找一个数首次与最后出现的位置

热门文章

  1. 为什么很多企业都在使用短信群发?原来是有3大好处!
  2. Markdownpad2错误This view has crashed问题解决记录
  3. 朴素贝叶斯的三个常用模型: 高斯、多项、伯努利的原理和解释
  4. 10个最好的无器械训练项目
  5. 摩尔斯电码的c语言程序,[蓝桥杯][算法提高VIP]摩尔斯电码 (C语言代码)
  6. c++知识点总结--共用体--枚举
  7. ssh信任与scp自动传输
  8. 阿朱离职京东,重返中国企业服务界
  9. 《Java 2 实用教程》读书笔记(四)4.4
  10. python将图片转换为抽象画