>Hi,
>
>Is it possible and if yes, how, to create a filtered index on Not Empty value? For example, I tried the following:
>
>
>CREATE UNIQUE NONCLUSTERED INDEX [UniqueExceptEmpty]
>ON [MYTABLE] (EMAIL_ADDR)
>WHERE LEN(EMAIL_ADDR) > 0
>
>
>But I get error "Incorrect where clause." What is wrong with my syntax?
You cannot use a function on a where:
http://msdn.microsoft.com/en-ca/library/ms188783.aspxWHERE filter_predicate
Creates a filtered index by specifying which rows to include in the index. The filtered index must be a nonclustered index on a table. Creates filtered statistics for the data rows in the filtered index.
The filter predicate uses simple comparison logic and cannot reference a computed column, a UDT column, a spatial data type column, or a hierarchyID data type column. Comparisons using NULL literals are not allowed with the comparison operators. Use the IS NULL and IS NOT NULL operators instead.
"The five senses obstruct or deform the apprehension of reality."
Jorge L. Borges?
"Premature optimization is the root of all evil in programming."
Donald Knuth, repeating C. A. R. Hoare
"To die for a religion is easier than to live it absolutely"
Jorge L. Borges