我有以下查詢。當我運行它時,我得到了錯誤。做這個的最好方式是什么?
declare @Slots varchar(50)
set @Slots = '1,2'
select * from Schedules where SlotID in (@Slots)
錯誤:
訊息 245,級別 16,狀態 1,行 5 將 varchar 值“1,2”轉換為資料型別 int 時轉換失敗。
uj5u.com熱心網友回復:
您還可以使用STRING_SPLIT表值函式進行 JOIN,該函式根據指定的分隔符將字串拆分為多行子字串。請參見以下示例:
DECLARE @Schedules TABLE(SlotID int);
INSERT @Schedules VALUES (1),(2),(3),(4);
DECLARE @Slots varchar(50);
SET @Slots = '1,2';
SELECT *
FROM @Schedules S
JOIN STRING_SPLIT(@Slots, ',') ON S.SlotID=value
uj5u.com熱心網友回復:
SQL Server 不支持宏替換。但是,您可以使用string_split()
declare @Slots varchar(50)
set @Slots = '1,2'
Select *
From Schedules
Where SlotID in (select Value from string_split(@Slots,','))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/514575.html
上一篇:獲取不包含結果的相關表
下一篇:如何同時控制多個列?
