在sql语句中,有时在条件中获取的值需要有判断结果,这种在实际的网站建设过程中会经常用到。
如果 a、b、c、d是变量,还有下面的sql语句:
sql="select * from 表 where id=" & c
set rs=abcdefg.execute(sql)
现在需要有这样一个判断,就是当a=b的时候,id就取c,如果a不等于b,即a<>b时,id的值就取d,那该怎么写呢?
也许有人在制作网站时会这样写:
sql="select * from 表 where id=" &
if a=b then
response.write(c)
else
response.write(d)
end if
set rs=abcdefg.execute(sql)
运行后发现出错了,其实上面的编程是错误的,不能在&后面直接写语句,而应该这样写:
dim ccdd
if a=b then
ccdd=c
else
ccdd=d
end if
sql="select * from 表 where id=" & ccdd
set rs=abcdefg.execute(sql)
具体运行与分析见附图一:
其实也就是找了个中间的变量,但一看就知道思路比较清晰,sql语句也比较顺。
除了上面的sql写法外,还有一种解决方案,即可以这样写,也行的:
sql="select * from 表 where id="
if a=b then
sql=sql & c
else
sql=sql & d
end if
set rs=abcdefg.execute(sql)
具体见附图二:
其实结果都是一样,但写法不一样,都可以解决在条件中有判断的语句,综上所述,简单易用,只要不能把语句直接写在连字符的后面就行了。