subject_25252.htm

来自「一些关于vc的问答」· HTM 代码 · 共 30 行

HTM
30
字号
<p>
序号:25252 发表者:hlm 发表日期:2002-12-20 09:19:20
<br>主题:如何让SQL语句的条件动态改变?
<br>内容:如何让SQL中的Where后的条件动态的改变?<BR>如有一个表有三个字段ID,NAME,SEX在存储过程中有三个传递参数,@ID,@NAME,@SEX分别对应,想要达到当某个参数为NULL时不对该参数进行判断,如下:<BR>1、如果@NAME为NULL,则Select * from Table Where ID=@ID And SEX=@SEX;<BR>2、如果@ID为NULL,则Select * from Table Where NAME=@NAME And SEX=@SEX;<BR>由于这样的组合很多,用if进行分类很繁琐,请问是否有更好的方法?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:coni 回复日期:2002-12-20 10:53:12
<br>内容:Select * from Table <BR>Where ID LIKE ISNULL(@ID,'%') AND NAME LIKE ISNULL(@NAME,'%') And SEX LIKE ISNULL(@SEX,'%')
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:hlm 回复日期:2002-12-20 14:51:38
<br>内容:但是like好像比较耗淘资源和时间,有没有什么复更好的办法?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:coni 回复日期:2002-12-20 18:04:20
<br>内容:Select * from Table <BR>Where (CASE WHEN @id IS NULL THEN true<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELSE ID=@id) AND<BR>(CASE WHEN @name IS NULL THEN true<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELSE NAME=@name) AND<BR>(CASE WHEN @sex IS NULL THEN true<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELSE SEX=@sex)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:fara 回复日期:2002-12-23 09:55:44
<br>内容:以下是我写的一段存储过程,但不能被通过:<BR>CREATE PROCEDURE test<BR>&nbsp;&nbsp;&nbsp;&nbsp;@Sign TinyInt = NULL,<BR>&nbsp;&nbsp;&nbsp;&nbsp;@FirstDate DateTime = NULL,<BR>&nbsp;&nbsp;&nbsp;&nbsp;@FinishDate DateTime = NULL<BR>AS<BR>&nbsp;&nbsp;&nbsp;&nbsp;Select * From Table Where Case When @Sign Is NULL Then OutDate=@FirstDate Else OutDate=@FinishDate<BR>显示以下错误:<BR>&nbsp;&nbsp;&nbsp;&nbsp;Error 170:Line 6:Incorrect syntax near '='<BR>所以我想是不是有什么地方不对。OutDate不能被提取出来,我试过了。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?