我有一个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
答案 0 :(得分:1)
',' + SC.MachineId + ',' like '%,' + @SpareID + ',%'