sql问题急急急,来大神解决

SQL server求一行中数据的最小值,表的列数不固定,注意是一行不是一列,能只用函数解决是最好

那你把一行数据读取出来放在某个容器里,然后比较大小,最后取出最小的不就行了。

测试表为book1;
测试数据如下:

图片说明

使用SQL语句如下:

 UPDATE A SET  
    lv = B.x.value('min(//row/*)','int')  
FROM [master].[dbo].[book1] AS A  
    CROSS APPLY (SELECT x = (SELECT A.* FOR XML PATH('row'),TYPE)) AS B;

运行结果如下:

图片说明

麻烦点你要不要试试case when函数

case
when lv1<=lv2&&lv1<=lv3& then lv1
when lv2<=lv1&&lv2<=lv3& then lv2
when lv3<=lv2&&lv3<=lv1& then lv3
end lv

比较大小,最后取出最小的不就行了。