我在查询中建立一个案例,其中如果一个字段为空或具有子字符串“ Name Not Found”,则该字段应替换为另一个字段的值。
到目前为止,这就是我所拥有的:
CASE WHEN [Salesperson1 Name] = '' THEN [Salesperson Name (Primary)]
WHEN CONTAINS([Salesperson1 Name], 'Name Not Found') THEN [Salesperson Name (Primary)]
ELSE [Salesperson1 Name]
END,
但是当我运行查询时,我收到以下消息:
Msg 7601, Level 16, State 2, Line 19
Cannot use a CONTAINS or FREETEXT predicate on table or indexed view 'staging_leads_rr' because it is not full-text indexed.
我怎样才能做到这一点?我究竟做错了什么?我不确定错误消息的含义,因为我是第一次使用T-SQL编写东西。
在包含功能涉及到SQL Server的全文搜索功能,它更适合于大规模的文本处理。请参阅此处的参考:https : //msdn.microsoft.com/en-us/library/ms142571.aspx
为了简单地做到这一点,您应该使用一些类似charindex函数的函数,如果确实找到了该字符串,则返回与搜索字符串的第一个字符位置相关的正值;否则,返回0:https://msdn.microsoft。 com / zh-CN / library / ms186323.aspx
然后您的查询将更像这样;
CASE WHEN [Salesperson1 Name] = '' THEN [Salesperson Name (Primary)]
WHEN CHARINDEX( 'Name Not Found', [Salesperson1 Name]) > 0 THEN [Salesperson Name (Primary)]
ELSE [Salesperson1 Name]
END,
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句