首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLServer存储过程

SQLServer存储过程
EN

Stack Overflow用户
提问于 2009-05-03 12:14:14
回答 4查看 244关注 0票数 0

我想知道你们中是否有人想做以下的事情:我有一个包含一些汽车定义idMode的表,这可能是奥迪100,福特穆斯坦等。然后我有另一个字段,包含汽车和模型的字符串,这可能是“福特野马2.5T",然后我需要从汽车定义中找到正确的ID。我想做

代码语言:javascript
复制
@CarDefintion = "Ford Mustang 2.5T"
Select top 1 CarDefinitionId 
  from dbo.CarModelDefinition 
 where CONTAINS(Model,@Cardefinition) 
   AND Contains(Company, @Cardefinition)

但是由于Model + Company并不是唯一的,所以我得到了这样的错误:“不能在表或索引视图'dbo.CarModelDefinition‘上使用CONTAINS或FREETEXT谓词,因为它不是全文索引的。”有人知道我怎么解决这个问题吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-05-03 12:39:49

使用LIKE搜索具有通配符列值的字符串。

代码语言:javascript
复制
@CarDefintion = "Ford Mustang 2.5T"
Select top 1 CarDefinitionId 
  from dbo.CarModelDefinition 
 where @Cardefinition like '%' + model + '%'
   AND @Cardefinition like '%' + company + '%';

+是字符串连锁运算符。

票数 1
EN

Stack Overflow用户

发布于 2009-05-03 12:37:28

代码语言:javascript
复制
@CarDefintion = "Ford Mustang 2.5T"

Select top 1 CarDefinitionId 
  from dbo.CarModelDefinition 
 where @Cardefinition LIKE Model OR @Cardefinition LIKE Company 
票数 1
EN

Stack Overflow用户

发布于 2009-05-03 12:24:11

代码语言:javascript
复制
DECLARE @CarDefintion VARCHAR(25)
        SET @CarDefintion = 'Ford Mustang 2.5T'

DECLARE @Make  VARCHAR(25)
DECLARE @Model VARCHAR(25)
SELECT @Make  = SUBSTRING(@CarDefintion,0,CHARINDEX(' ',REVERSE(@CarDefintion)))
SELECT @Model = LTRIM( REPLACE(@CarDefintion,@Make,'')) 

--SELECT @Make,@Model

        SELECT TOP 1 * 
          FROM dbo.CarModelDefinition 
         WHERE Model   = @Model
           AND Company = @Make

hence ()函数用于全文搜索,您很可能没有使用这些函数(因此出现了错误)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/816902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档