sql 如果传值等于0就查等于0的,不等于0就查大于0的 怎么写
2个回答
展开全部
你在语言里面写就行了,到sql里的时候就生成语句了,比如说你写好判断
string sqlstr="select * from 表名 where ";
string strWhere="";
if(x=0){
//生成的语句是
strWhere="x=0";
}else
{
strWhere="x>0";
}
sqlstr=sqlstr+strWhere;
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 的最大值。
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) 这样写条件就搞定 虽然没试你的方法 但看你写的蛮多的 分就给你了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询