T-SQL转CAML查询不生效排查及正确查询写法求助
问题分析与解决
原有CAML不生效的原因
- 多余筛选条件:你的T-SQL语句中没有对
AnyPlace字段的判断,现有CAML多加入了该字段的布尔值校验,直接导致查询逻辑和预期不符 - 逻辑冗余:T-SQL中两个判断分支共享
libraryname='packaging'和level='a'两个公共条件,不需要在或分支中重复编写
正确的CAML查询语句
<Where> <And> <Eq> <FieldRef Name='Library' /> <Value Type='Lookup'>Packaging</Value> </Eq> <And> <Eq> <FieldRef Name='Level' /> <Value Type='Choice'>A</Value> </Eq> <Or> <Eq> <FieldRef Name='LineName' /> <Value Type='Lookup'>PURE</Value> </Eq> <Eq> <FieldRef Name='AnyLine' /> <Value Type='Boolean'>1</Value> </Eq> </Or> </And> </And> </Where>
T-SQL转CAML工具说明
目前没有完全适配所有场景的通用T-SQL转CAML工具,CAML作为SharePoint专属查询语言,和SQL的字段映射、逻辑嵌套规则存在较大差异,建议使用本地CAML编辑器工具手动调试校验字段类型、内部名称与逻辑的匹配性。
内容的提问来源于stack exchange,提问作者amber amber
相关产品推荐
相关产品推荐

