如何对SQL数据库中每一行存的数大小进行比较,并将最大的那个数所在的列名找到

如何对SQL数据库中每一行存的数大小进行比较,并将最大的那个数所在的列名找到,第1张

分两步走比较好,用脚本处理,效率也比较高,能不用子查询就不用子查询:

比如php结合mysql:

$res=mysql_query("select * from student_scores")

while($row=mysql_fetch_array($res))

{

$scores=array($row['math'],$row['phycis'],$row['chem'],$row['eng'])

asort($scores)//排序保持索引关系

$max=array_pop($scores)// 找出成绩最好的科目

echo $max//

echo array_flip($max)

}

sql里面字符串没有大小之分,只有长度之分,可以比较长度大小,但是想用一条sql语句直接拿到大小结果来说也不太方便,最好是借助程序或者sql脚本来做,我用oracle试了下,用case when函数是可以直接比较大小的,比如第一个值比第二个大输出0,否则输出1:

select (case when len1>len2 then 0 when len1<len2 then 1 end) as res from (

select length('asd') as len1,length('as') as len2 from dual) t

那就得动态拼接字符串了,比如

select

a.name

from

sys.columns

as

a

join

sys.tables

as

b

on

a.object_id

=

b.object_id

and

b.name

=

'你的表名'

以上脚本sql2008可用。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6768761.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存