怎样查询出某个字段值长度最长的那条数据?

wnsr 2014-09-25 10:57:56
表ryb,字段姓名xm,说明sm,
说明值有长有短,同一个人有多条数据,怎样查询姓名为‘张三‘,且‘张三‘说明值最长的那条数据
...全文
9421 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
shinger126 2018-07-05
  • 打赏
  • 举报
回复
引用 6 楼 DBA_Huangzj 的回复:
update a
set a.bz='最长'
from ryb a inner join (select xm,max(sm)sm
from ryb
group by xm) b on a.xm=b.xm and a.sm=b.sm

好久不见老黄
Jinho_ 2018-07-05
  • 打赏
  • 举报
回复
select * from ryb where xm='张三' and length(sm)=(select max(length(sm)) from ryb where xm='张三')
hleb231 2014-09-25
  • 打赏
  • 举报
回复

这样不行?
update ryb set bz='最长' 
                       where len(sm)=
 (select top 1 MAX(len (sm)) from ryb)
reenjie 2014-09-25
  • 打赏
  • 举报
回复
引用 6 楼 DBA_Huangzj 的回复:
update a
set a.bz='最长'
from ryb a inner join (select xm,max(sm)sm
from ryb
group by xm) b on a.xm=b.xm and a.sm=b.sm
版主 字段sm是字符类型 max(sm) 还是其本身值
reenjie 2014-09-25
  • 打赏
  • 举报
回复
引用 5 楼 wnsr 的回复:
其实我要更新说明值最长的那条数据的某个字段
试一下这句

update ryb set bz='最长' from(
select top 1 * from ryb where xm='张三' order by len(sm) desc) as b where ryb.xm=b.xm and ryb.sm=b.sm
xiaodongni 2014-09-25
  • 打赏
  • 举报
回复
引用 6 楼 DBA_Huangzj 的回复:
update a
set a.bz='最长'
from ryb a inner join (select xm,max(sm)sm
from ryb
group by xm) b on a.xm=b.xm and a.sm=b.sm
大哥你这个不对啊 测试了下 不对啊 都更新了啊
xiaodongni 2014-09-25
  • 打赏
  • 举报
回复

create table  ryb (nam varchar(10),bz varchar(10),sm varchar(20))
insert into ryb 
select '张三' as name,null as bz,'你好' as sm union all
 select '李四',null,'啊好吗'
 

 update ryb set bz='最长'
 where LEN(sm)=(select MAX(len(sm)) from ryb)

--结果

nam        bz         sm
---------- ---------- --------------------
张三         NULL       你好
李四         最长         啊好吗

(2 行受影响)
發糞塗牆 2014-09-25
  • 打赏
  • 举报
回复
update a
set a.bz='最长'
from ryb a inner join (select xm,max(sm)sm
from ryb
group by xm) b on a.xm=b.xm and a.sm=b.sm
wnsr 2014-09-25
  • 打赏
  • 举报
回复
其实我要更新说明值最长的那条数据的某个字段
發糞塗牆 2014-09-25
  • 打赏
  • 举报
回复
select xm,max(sm) from ryb group by xm
wnsr 2014-09-25
  • 打赏
  • 举报
回复
其实更新说明值最长的那条数据,的某个字段,例如更新字段bz的值为‘最长’,又该怎么写这语句?上面的语句只能查出来
xiaodongni 2014-09-25
  • 打赏
  • 举报
回复
加个TOP 1 with tes这样有多条一样长 也可以同时显示多条。
reenjie 2014-09-25
  • 打赏
  • 举报
回复

select top 1 * from ryb where xm='张三' order by len(sm) desc
u010535898 2014-09-25
  • 打赏
  • 举报
回复
UPDATE  ryb SET  字段=‘’
where bz=
(SELECT  TOP 1 bz FROM PRDT ORDER BY LEN(bz) DESC))
u010535898 2014-09-25
  • 打赏
  • 举报
回复
UPDATE  ryb SET  字段=‘’
where bz=
(SELECT  TOP 1 bz FROM PRDT ORDER BY LEN(NAME) DESC))

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧