2017-09-25 109 views
1

我想了解更多关于SQL程序,所以我试图做到这一点:SQL过程与LIKE

CREATE PROCEDURE GetCarInformation 
(@ModelName Varchar(256)) 
AS 
Begin 
SELECT Car.LicensePlate, CarBrand.ManufacturerName, CarModel.ModelName, CarSpecs.ModelYear, CarSpecs.Doors, CarSpecs.Seats, CarSpecs.ModelYear 
FROM Car 
INNER JOIN CarModel ON Car.ModelID = CarModel.ID 
INNER JOIN CarBrand ON CarModel.ManufacturerID = CarBrand.ID 
INNER JOIN CarSpecs ON CarModel.CarSpecsID = CarSpecs.ID 
WHERE CarModel.ModelName LIKE '%@ModelName%' 
END 

但它似乎没有工作,在它的LIKE部分。 它不会正确搜索。 是因为我错用了吗? 或者我无法使用@ModelName添加%?和单引号?

+1

首先要学习:**定义**您正在使用的具体RDBMS **。 “SQL”不够精确 - 几乎所有的RDBMS都使用SQL作为查询语言,但程序代码是**高度特定于供应商的** - 因此请添加相关标签(如'db2','oracle','' mysql','sql-server'等)到你的问题 –

+0

@MatiasThayer我不知道tensorflow是什么? – andrelange91

+0

@marc_s,抱歉,我不知道它是不同的 – andrelange91

回答

3

您应该使用

LIKE '%'[email protected]+'%' 

这是MSSQL的方式来使用CONCAT字符串。你也可以使用CONCAT()。

请谨慎使用LIKE'%xxx%'。它可能会对表演造成非常不好的影响。

+0

LIKE仅用于测试小脚本,但是谢谢,这正是我所需要的。 – andrelange91