如何将SQL中的Replace语句设置到查询字符串中?
How to set into query string the Replace Statement in SQL?
这是我的问题..但我会展示示例以使其更简单
我有一个名为 usp_Replace 的存储过程。此 sp 将用空格替换引号。
这是未将其设置为查询字符串的原始查询..
CREATE PROCEDURE usp_Replace
@desc varchar(50)
AS
BEGIN
SET NOCOUNT ON;
SELECT '' + Replace(REPLACE(REPLACE(@desc, CHAR(13), ''), CHAR(10), ''),'"','') + ''
END
但是..
我想将 select 语句设置为查询字符串,因为出于某种原因我将不得不使用条件语句但不会显示它,因为它不是问题的一部分。
这里..
ALTER PROCEDURE usp_Replace
@desc varchar(50)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @query nvarchar(max)
DECLARE @condition nvarchar(max)
SET @condition = null
SET @query = ' SELECT '' + Replace(REPLACE(REPLACE('''+@desc+''', CHAR(13), ''), CHAR(10), ''),''"'','') + '' '
SET @query = @query + ISNULL(@condition,'')
EXEC sp_executesql @query
END
我在这方面遇到错误,导致有未闭合的引号。
我真的对如何以及在何处放置单引号有疑问。
如果您遇到此问题或任何问题,请提供帮助links/suggestions。我会很高兴了解它。谢谢
您需要将字符串中的所有单引号括起来,包括空字符串。所以,''
变成 ''''
:
SET @query = 'SELECT Replace(REPLACE(REPLACE(@desc, CHAR(13), ''''), CHAR(10), ''''),'' " '', '''') '
我不确定空字符串在开头和结尾做了什么,所以我只是删除了它们。
这是我的问题..但我会展示示例以使其更简单
我有一个名为 usp_Replace 的存储过程。此 sp 将用空格替换引号。 这是未将其设置为查询字符串的原始查询..
CREATE PROCEDURE usp_Replace
@desc varchar(50)
AS
BEGIN
SET NOCOUNT ON;
SELECT '' + Replace(REPLACE(REPLACE(@desc, CHAR(13), ''), CHAR(10), ''),'"','') + ''
END
但是.. 我想将 select 语句设置为查询字符串,因为出于某种原因我将不得不使用条件语句但不会显示它,因为它不是问题的一部分。
这里..
ALTER PROCEDURE usp_Replace
@desc varchar(50)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @query nvarchar(max)
DECLARE @condition nvarchar(max)
SET @condition = null
SET @query = ' SELECT '' + Replace(REPLACE(REPLACE('''+@desc+''', CHAR(13), ''), CHAR(10), ''),''"'','') + '' '
SET @query = @query + ISNULL(@condition,'')
EXEC sp_executesql @query
END
我在这方面遇到错误,导致有未闭合的引号。 我真的对如何以及在何处放置单引号有疑问。
如果您遇到此问题或任何问题,请提供帮助links/suggestions。我会很高兴了解它。谢谢
您需要将字符串中的所有单引号括起来,包括空字符串。所以,''
变成 ''''
:
SET @query = 'SELECT Replace(REPLACE(REPLACE(@desc, CHAR(13), ''''), CHAR(10), ''''),'' " '', '''') '
我不确定空字符串在开头和结尾做了什么,所以我只是删除了它们。