SPQuery 语句查询

ICEMAN_BIN 2010-12-10 03:21:01
现在有一个业务查询,查询条件用SQL表达如下
...where ModerationStatus='已批准' and ContentType='文章页面' 
and (IsTop=0 or (IsTop=1 and CreateTime<'2010-12-10'))

业务需求是 查未置顶,或置顶过期的文章。 用U2U Caml Query Builder工具生成时,在多个and 和 or结合时总是感觉不对。 哪位对SPQuery熟悉的能指教一二?
...全文
242 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ICEMAN_BIN 2010-12-16
  • 打赏
  • 举报
回复
其实见过很多地方都是用数字的,不过也有另外情况啊~ 呵呵
[Quote=引用 8 楼 erucy 的回复:]
也没错,不过Value Type都怪怪的。。。
另外,我印象中审批状态好像不能用文本来判断,好像得用数字?不过太久了记不清楚了
[/Quote]
ICEMAN_BIN 2010-12-16
  • 打赏
  • 举报
回复
汗了~ 解释下...语句是在工具里写的,随便找个库,选了几个字段,主要还是搞明白格式。后来把字段名和值替换了下,Type忘了改了~
呵呵...

<And>
<And>
<Eq>
<FieldRef Name='ModerationStatus' />
<Value Type='Text'>已批准</Value>
</Eq>
<Eq>
<FieldRef Name='ContentType' />
<Value Type='Text'>文章页面</Value>
</Eq>
</And>
<Or>
<Eq>
<FieldRef Name='IsTop' />
<Value Type='Text'>0</Value>
</Eq>
<And>
<Eq>
<FieldRef Name='IsTop' />
<Value Type='Text'>1</Value>
</Eq>
<Eq>
<FieldRef Name='CreateTime' />
<Value Type='DateTime'>'2010-12-10'</Value>
</Eq>
</And>
</Or>
</And>

Michael193 2010-12-15
  • 打赏
  • 举报
回复
关于ValueType, 看这个:
http://blog.csdn.net/Michael193/archive/2010/10/14/5941374.aspx

[Quote=引用 7 楼 iceman_bin 的回复:]
我也昨天才写出来,如下:

SQL code

<And>
<And>
<Eq>
<FieldRef Name='ModerationStatus' />
<Value Type='Text'>已批准</Value>
</Eq>
……
[/Quote]
Erucy 2010-12-14
  • 打赏
  • 举报
回复
也没错,不过Value Type都怪怪的。。。
另外,我印象中审批状态好像不能用文本来判断,好像得用数字?不过太久了记不清楚了
ICEMAN_BIN 2010-12-14
  • 打赏
  • 举报
回复
我也昨天才写出来,如下:

<And>
<And>
<Eq>
<FieldRef Name='ModerationStatus' />
<Value Type='Text'>已批准</Value>
</Eq>
<Eq>
<FieldRef Name='ContentType' />
<Value Type='Note'>文章页面</Value>
</Eq>
</And>
<Or>
<Eq>
<FieldRef Name='IsTop' />
<Value Type='User'>0</Value>
</Eq>
<And>
<Eq>
<FieldRef Name='IsTop' />
<Value Type='Text'>1</Value>
</Eq>
<Eq>
<FieldRef Name='CreateTime' />
<Value Type='URL'>'2010-12-10'</Value>
</Eq>
</And>
</Or>
</And>


Erucy 你觉得呢?
Erucy 2010-12-14
  • 打赏
  • 举报
回复
嵌套关系应该是这样的:
<Where>
<And>
<Eq>ModerationStatus....</Eq>
<And>
<Eq>ContentType....</Eq>
<Or>
<Eq>IsTop...</Eq>
<And>
<Eq>IsTop...</Eq>
<Lt>CreateTime...</Lt>
</And>
</Or>
</And>
</And>
</Where>
ICEMAN_BIN 2010-12-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 richesdragon 的回复:]
解决了吗?
[/Quote]

还没///
ICEMAN_BIN 2010-12-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 panzhixiong_cn 的回复:]
啥是SPQuery啊?
[/Quote]
实际上准确的来说我用的是SPSiteDataQuery,和SPQuery查询的范围还是有区别的。MOSS中用来查询站点、列表信息的查询语句。
panzhixiong_cn 2010-12-11
  • 打赏
  • 举报
回复
啥是SPQuery啊?
Richesdragon 2010-12-11
  • 打赏
  • 举报
回复
解决了吗?
Justin-Liu 2010-12-10
  • 打赏
  • 举报
回复

3,245

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 SharePoint
社区管理员
  • SharePoint社区
  • 霖雨 - LinyuLoveTJ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧