首页 > 解决方案 > 如何在更新查询中使用 STRING_SPLIT()?

问题描述

我想更新一个表,它的一个字段是逗号分隔的值,我想更新那个表,我尝试了不同的代码但没有工作

UPDATE [PATS].[ReportSubscription]
   SET [ScheduleID] = @ScheduleID
      ,[ReferenceID] = @ReferenceID
      ,[ReferenceType] = @ReferenceType
      ,[Schedule] = @Schedule
      ,[Day] = @Day
      ,[Time] = @Time
      ,[ProjectID] = @ProjectID
      ,[LastSentDate] = @LastSentDate
      ,[UserID] = @UserID
      --,[CreatedBy] = @CreatedBy
      --,[CreatedDate] = @CreatedDate
      ,[UpdatedBy] = @UpdatedBy
      ,[UpdatedDate] = @UpdatedDate
  WHERE ID=@ID AND @Day IN (SELECT * FROM STRING_SPLIT(@Day,','))

我认为这(SELECT * FROM STRING_SPLIT(@Day,','))应该与代码结合起来。

在此处输入图像描述

标签: sql-server

解决方案


您的查询将是:

UPDATE [PATS].[ReportSubscription]
   SET [ScheduleID] = @ScheduleID
  ,[ReferenceID] = @ReferenceID
  ,[ReferenceType] = @ReferenceType
  ,[Schedule] = @Schedule
  ,[Day] = @Day
  ,[Time] = @Time
  ,[ProjectID] = @ProjectID
  ,[LastSentDate] = @LastSentDate
  ,[UserID] = @UserID
  ,[CreatedBy] = @CreatedBy
  ,[CreatedDate] = @CreatedDate
  ,[UpdatedBy] = @UpdatedBy
  ,[UpdatedDate] = @UpdatedDate
  WHERE ID=@ID AND Day IN (SELECT value FROM STRING_SPLIT(@Day,','))

访问https://docs.microsoft.com/en-us/sql/t-sql/functions/string-split-transact-sql?view=sql-server-2017了解更多信息。注意:确保相应地修剪您的选择以去除不需要的空间


推荐阅读