在sql語句中,有時在條件中獲取的值需要有判斷結(jié)果,這種在實際的網(wǎng)站建設(shè)過程中會經(jīng)常用到。
如果 a、b、c、d是變量,還有下面的sql語句:
sql="select * from 表 where id=" & c
set rs=abcdefg.execute(sql)
現(xiàn)在需要有這樣一個判斷,就是當(dāng)a=b的時候,id就取c,如果a不等于b,即a<>b時,id的值就取d,那該怎么寫呢?
也許有人在制作網(wǎng)站時會這樣寫:
sql="select * from 表 where id=" &
if a=b then
response.write(c)
else
response.write(d)
end if
set rs=abcdefg.execute(sql)
運行后發(fā)現(xiàn)出錯了,其實上面的編程是錯誤的,不能在&后面直接寫語句,而應(yīng)該這樣寫:
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)
具體見附圖二:
其實結(jié)果都是一樣,但寫法不一樣,都可以解決在條件中有判斷的語句,綜上所述,簡單易用,只要不能把語句直接寫在連字符的后面就行了。