sql 如果传值等于0就查等于0的,不等于0就查大于0的 怎么写

 我来答
3614894
2013-01-16 · TA获得超过883个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:225万
展开全部
你在语言里面写就行了,到sql里的时候就生成语句了,比如说你写好判断
string sqlstr="select * from 表名 where ";
string strWhere="";
if(x=0){
//生成的语句是
strWhere="x=0";
}else
{
strWhere="x>0";

}
sqlstr=sqlstr+strWhere;
更多追问追答
追问
如 select * from table where (@i=-1 or id>@i) 这样 传-1的话 就查所有的 大于-1的话就查大于@i的值  不能if 还不能拼接SQL语句
追答
那你想要什么样的?
存储过程你这个是?
要是存储过程你就在上面定义一个 函数,然后做判断,最后放到 where 后面就可以了
匿名用户
推荐于2016-12-02
展开全部
如果是 SQL Server 的话.

SELECT
*
FROM

WHERE
列 = CASE WHEN @参数 = 0 THEN 0 ELSE 2147483647 END
OR
列 > CASE WHEN @参数 <> 0 THEN 0 ELSE 2147483647 END

注: 2147483647 是 int 的最大值。
追问
(id=@i or id>@i) 这样写条件就搞定  虽然没试你的方法  但看你写的蛮多的 分就给你了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式