今天在做統計數據的時候,傳入數組導致數據不顯示。解決方式和大家分享一下: --參數@CompanyName='北京,天津,上海' DECLARE @PointerPrev int DECLARE @PointerCurr int DECLARE @TName nvarchar(100) Set @P ...
今天在做統計數據的時候,傳入數組導致數據不顯示。解決方式和大家分享一下:
--參數@CompanyName='北京,天津,上海'
DECLARE @PointerPrev int
DECLARE @PointerCurr int
DECLARE @TName nvarchar(100)
Set @PointerPrev=1
while (@PointerPrev < LEN(@CompanyName))
Begin
Set @PointerCurr=CharIndex(',',@CompanyName,@PointerPrev)
if(@PointerCurr>0)
Begin
set @TName=SUBSTRING(@CompanyName,@PointerPrev,@PointerCurr-@PointerPrev)
--我們可以在這裡直接進行刪除或修改
DELETE FROM TestA WHERE Name=@TName
--如果作為查詢條件,我需要創建一個臨時表,將數據插入進去
--insert into #CnameTable (Name) VALUES (@TName)
SET @PointerPrev = @PointerCurr+1
End
else
Break
End
--因為最後一個後面沒有逗號,所以在迴圈中跳出,需另外再刪除
set @TName=SUBSTRING(@CompanyName,@PointerPrev,LEN(@CompanyName)-@PointerPrev+1)
DELETE FROM TestA WHERE Name=@TName