LIKE运算符如何在SQL中工作

时间:2016-11-24 05:53:39

标签: sql sql-server tsql

我有一个SQL查询,我希望使用like运算符来基于使用LIKE运算符的字符串比较来选择列。

列值将包含多个与之关联的计算机,例如。 M1,M2,M3,M15

如果我在LIKE运算符中使用单个机器名,例如。 '其中machineId喜欢%M1%'会返回该列吗?

如果我在LIKE运算符中将机器名称发送为M2或M3或M15,则应返回相同的列。

select 
    SC.ConsumptionNo[ReferenceNo], 
    Replace(convert(varchar, SC.ConsumptionDate,106), ' ', '-')[Consumed Date],
    sm.Spare_name[Spare Name],
    sm.SPart_No[Part Number],
    SC.Quantity[Consumed],
    um.UOM_Name[UOM],
    lm.Location_Name[Location Name],
    SC.UserId[User ID]
from Spare_Consumption SC
inner Join Spare_master sm on SC.SpareId = sm.Spare_Id
inner join Location_Master_Detail lm on SC.LocationId = lm.Location_Id
inner join UOM_Master um on sm.UOM = um.UOM_ID
where SC.ConsumptionDate >= Replace(CONVERT(varchar, cast(@StartDate as date), 106), ' ', '-')
and SC.MachineId like '%' + @SpareID + '%'
and SC.ConsumptionDate < Replace(CONVERT(varchar,  Dateadd(dd, 1, cast(@EndDate as date)), 106), ' ', '-')
and SC.LocationId = @LocationId

1 个答案:

答案 0 :(得分:1)

',' + SC.MachineId + ',' like '%,' + @SpareID + ',%'