5

I want to build a CAML query to search for all title fields that do NOT begin with a certain value:

something like this: Where Title NOT BeginsWith 'myvalue'.

How can i do that in my CAML query?

4 Answers 4

2

as far as I know, this is not possible using caml

you could do it on the results afterwards.

I know it's ugly but I do not know if there is another solution

2
  • True, iterating is terrible and affects performance, out of the question, hope ther is another way
    – Zee99
    Commented Jun 16, 2011 at 14:46
  • Use LINQ to select the correct items maybe> the requested functionality is impossible to do with just CAML
    – Colin
    Commented Jun 16, 2011 at 17:01
1

You might try adding a calculated column on your list, something to the effect of:

=IF(LEFT([Title], 7)="myvalue", "YES", "NO")

Then you could use the CAML query to check the calculated column for "YES" or "NO".

You might have to adjust the formula above to account for NULL or to test if the overall length (LEN) of the string is longer than the prefix you are checking for, but hopefully you get the idea.

Here is the resource for the forumlas you can use in the calculated column:

http://msdn.microsoft.com/en-us/library/bb862071.aspx

0

Dependent on the amount of data you are going to query maybe using SP search is a valid approach for you. You can use FullTextSQLQuery to optimize your results and you don't have to filter the results like you have to do with CAML.

-1

You can download the U2U Caml Query application. It is usefull and help you to make caml query easily.

1
  • Although this is a useful tool, it does not help in this case since CAML does not provide an option for NOT BeginsWith.
    – Laurie
    Commented Jun 17, 2011 at 5:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.