sql-server – 获取大于零的最小值
发布时间:2020-12-12 08:40:02 所属栏目:MsSql教程 来源:网络整理
导读:我有下表: column1 column2 column3 3 2 0 5 9 2 1 4 6 当我运行以下代码: SELECT id_function = @param,MIN(t1.column1) AS c1min,MAX(t1.column2) AS c2max,MIN(t1.column3) AS c3minFROM table1 (NOLOCK) AS t1WHERE t1.id = @param 我得到: c1min c2ma
我有下表:
column1 column2 column3 3 2 0 5 9 2 1 4 6 当我运行以下代码: SELECT id_function = @param,MIN(t1.column1) AS c1min,MAX(t1.column2) AS c2max,MIN(t1.column3) AS c3min FROM table1 (NOLOCK) AS t1 WHERE t1.id = @param 我得到: c1min c2max c3min 1 9 0 我的问题是c3min必须是大于零的最小值. c1min c2max c3min 1 9 2 有没有办法做,而不使用子选择? 谢谢! 解决方法我建议使用nullif(),所以你的查询将是SELECT id_function = @param,MIN(NULLIF(t1.column3,0) AS c3min FROM table1 (NOLOCK) AS t1 WHERE t1.id = @param 这样你就不会改变你的结果,例如如果您在第3列中的真实最小值为100,则以前的答案将会影响您的结果,如果您的列3列中只有零,则以前的答案也将提供不正确的结果 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |