我正在尝试编写查询,以便如果列包含破折号,则会提供一个结果,否则会产生另一个结果。
我的查询如下所示。
我收到错误:
不能在表或索引视图'#MyTEmp'上使用CONTAINS或FREETEXT谓词,因为它不是全文索引的。
我不知道这意味着什么或如何解决它......
以下是我想要开始工作的查询代码:
Select ( IIF( CONTAINS(PONO, '-'),'Dashwala',PONO)), Qty from #MyTEmp
和...
#MyTEmp就是这样的:
Select AR_Numbers, PONO, Product, Sum( isnull(try_cast(quantity as decimal ), 0)) as Qty
into #MyTemp
from
(Select ARs.DocID, Ars.Field61 as AR_Numbers, PONOs.Field21 as PONO, CoreData.Field9 as Product, CoreData.Field10 as Quantity
from ssMVFields ARs left join ssFields PONOs on ARs.DocId = PONOs.DocId left join ssField14 as CoreData on Ars.DocID = CoreData.DocID
where ARs.ArchiveID = 12 and PONOs.ArchiveID = 12 and CoreData.ArchiveID = 12) as AAA
Group by AR_Numbers, PONO, Product
答案 0 :(得分:0)
尝试使用CHARINDEX函数,CONTAINS是一个全文搜索功能
select
case when CHARINDEX('-', PONO) > 0 then 'Dashwala' else PONO end,
Qty
from
#MyTEmp
答案 1 :(得分:0)
对于使用函数CONTAINS或FREETEXT,您必须在sql server上安装Full-Text组件,您的数据库必须具有Fulltext目录,并且您的表必须具有索引列。只有在此之后,您才可以使用此函数来搜索谓词。 只为你 - #MyTEmp必须被编入索引 - How to create full-text index
有关此技术的更多信息:MSDN article