我剛開始添加寫入存儲過程到我的SQL庫,我敢肯定這是一個noob問題。在這種情況下,有人能指出我正確的方向嗎?如何使用like
運營商而不是=
運營商?這樣做的目的是要找到第3個通用號碼的開出一個潛在的5位數字的像存儲過程中的輸入參數操作符
存儲過程:
create proc dbo.MultipleDrugs (@condition varchar(50))
as
SELECT *, 100.0 * round(SUM(numwithanxiety) OVER (partition BY sex)/cast(TotalSexCounts AS float), 4) overAllPercentByGender
FROM (SELECT x.sex, injurylevel, SUM(sexandlevelcounts) OVER (partition BY x.sex) numByInjury, sum(sexandlevelcounts) AS numWithAnxiety,
100.0 * round(cast(sexandlevelcounts AS float)/SUM(sexandlevelcounts) OVER (partition BY x.sex), 4) AS percentWith, y.TotalSexCounts
FROM (SELECT sex, injurylevel, COUNT(*) AS sexAndLevelCounts
FROM (SELECT DISTINCT m.patid, m.sex, m.injurylevel
FROM members AS m INNER JOIN
icdClm AS ic ON ic.patid = m.PATID
--*****when I leave this operator as like and use
--*****equals in the exec statement it works
WHERE ic.icd LIKE @condition) t
GROUP BY sex, injurylevel) x INNER JOIN
(SELECT m.sex, COUNT(DISTINCT patid) TotalSexCounts
FROM members m
GROUP BY m.sex) y ON y.sex = x.sex
GROUP BY x.sex, x.injuryLevel, x.sexAndLevelCounts, y.TotalSexCounts) rr
go
這將運行,但我不能使用like
操作
exec dbo.MultipleDrugs N'70700'
這是我想要做的
exec dbo.MultipleDrugs like '707%'
你有沒有嘗試過:LIKE'%'+ @condition +'%'在你的sp? – Ric
在您的exex調用中,您不需要類似的東西,只需在您的查詢中 – Limey
然後在exec語法中保留「like」。 –