| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 708 人关注过本帖
标题:SQL SERVER 如何进行判断性IIF函数的查询?
只看楼主 加入收藏
pzyun1985
Rank: 2
等 级:论坛游民
帖 子:106
专家分:18
注 册:2013-4-13
结帖率:84.21%
收藏
已结贴  问题点数:20 回复次数:8 
SQL SERVER 如何进行判断性IIF函数的查询?
图片附件: 游客没有浏览图片的权限,请 登录注册

W3="村名称"
W4="="
W5="长山村"
这个是我设想的SQL查询:
sqlexec(nhandle,"select * from ZRK WHERE "+W2+" IIF('"+THISFORM.CONTAINER7.CHECK1.VALUE+'"=1,"+W3+" "+W4+" '"+ALLTR(W5)+"' "+W7+") "+W8+" "+W9+" "+W10+" '"+ALLTR(W11)+"' "+W12+"","s")
以前因为是本地表,所以第一句就是SELE * FROM ZRK INTO CURSOR S,再往下进行排选,现在数据换成SQL数据库,如果第一句是SELE * FROM ZRK INTO CURSOR S就很慢,能不能用上面的查询语句来跳过查询(如果CHECK.VALUE=1就运行查询,CHECK.VALUE=0就跳过),但是上面的代码我运行不出结果。
搜索更多相关主题的帖子: SQL数据库 长山村 如何 
2013-11-24 10:00
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:4 
看看帮助中的iif()
2013-11-24 10:36
pzyun1985
Rank: 2
等 级:论坛游民
帖 子:106
专家分:18
注 册:2013-4-13
收藏
得分:0 
回复 2楼 tlliqi
是SQL SERVER查询代码中插入IIF判断,就是运行不出结果
2013-11-24 10:42
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:4 
不知你的全部代码,只有给你个思路,就是先构建 WHERE 条件字串
W3="村名称"
W4="="
W5="长山村"
where_c=""
if THISFORM.CONTAINER7.CHECK1.VALUE=1
    where_c=where_c+W3+W4+"'"+ALLTR(W5)+"'"
ENDIF
IF NOT EMPTY(where_c)
    where_c=" WHERE "+where_c
ENDIF

*其它的W7, W8,W9,W10,+ALLTR(W11),W12不知是什么意思,你自己组织吧
sqlexec(nhandle,"select * from ZRK "+where_c,"s")
2013-11-24 14:28
b土木丁口
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:264
专家分:189
注 册:2013-9-12
收藏
得分:4 
路过
2013-11-24 15:26
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用bccn0906在2013-11-24 14:28:25的发言:

不知你的全部代码,只有给你个思路,就是先构建 WHERE 条件字串
W3="村名称"
W4="="
W5="长山村"
where_c=""
if THISFORM.CONTAINER7.CHECK1.VALUE=1
    where_c=where_c+W3+W4+"'"+ALLTR(W5)+"'"
ENDIF
IF NOT EMPTY(where_c)
    where_c=" WHERE "+where_c
ENDIF

*其它的W7, W8,W9,W10,+ALLTR(W11),W12不知是什么意思,你自己组织吧
sqlexec(nhandle,"select * from ZRK "+where_c,"s")
应该可行
2013-11-24 17:32
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:4 
4 楼思路正确。先处理好条件,最后一句 sql。 但是,'条件值’前要加 ?号.否则,可能不运行.(仅供参考)
W3="村名称"
W4="="
W5="长山村"
if THISFORM.CONTAINER7.CHECK1.VALUE=1
    ce="where "+w3+w4+"?w5"
    sqlexec(nhandle,ce,"s")
endif
   
   

2013-11-24 21:32
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:0 
用?引用参数变量更简便,不用也可以。只是尊重楼主的使用习惯
2013-11-25 09:44
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:4 
用SQL SERVER,要多学会构建SQL语句,这是交由后台数据库执行的,并非VFP执行的语句。
2013-11-27 18:45
快速回复:SQL SERVER 如何进行判断性IIF函数的查询?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033838 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved