SQL在等号后面加引号
我有一个SQL字符串,我想在等号后用引号括起来。 当前:SQL在等号后面加引号,sql,sql-server,Sql,Sql Server,我有一个SQL字符串,我想在等号后用引号括起来。 当前:@Condition=N'Sev=300或EVC=102和SRC=380P064 之后:@Condition=N'Sev='300'或EVC='102'和SRC='380P064' 有没有一个快速解决办法来得到我想要的?谢谢 我不明白你的问题,但我会试试看 如果你想用'来表示一个字符串,你需要在你的第一个N'Sev中转义它。像这样 @Condition = N/'Sev = '300' OR EVC = '102' AND SRC =
@Condition=N'Sev=300或EVC=102和SRC=380P064
之后:@Condition=N'Sev='300'或EVC='102'和SRC='380P064'
有没有一个快速解决办法来得到我想要的?谢谢
我不明白你的问题,但我会试试看 如果你想用'来表示一个字符串,你需要在你的第一个N'Sev中转义它。像这样
@Condition = N/'Sev = '300' OR EVC = '102' AND SRC = '380P064'
你也可以考虑用“代替”/P>
@Condition = N'Sev = "300" OR EVC = "102" AND SRC = "380P064"
我不明白你的问题,但我会试试看 如果你想用'来表示一个字符串,你需要在你的第一个N'Sev中转义它。像这样
@Condition = N/'Sev = '300' OR EVC = '102' AND SRC = '380P064'
你也可以考虑用“代替”/P>
@Condition = N'Sev = "300" OR EVC = "102" AND SRC = "380P064"
不好意思,我以前没看到这个
Declare @Condition nvarchar(max) = N'Sev = 300 OR EVC = 102 AND SRC = 380P064 AND XXX = HELLO'
Set @Condition = Replace(Replace(Replace(@Condition,'= ','= '''),' OR ',''' OR '),' AND ',''' AND ')+''''
Select @Condition
返回
Sev = '300' OR EVC = '102' AND SRC = '380P064' AND XXX = 'HELLO'
或者如果你想要原版
Set @Condition=@Condition+''''
Select @Condition = Replace(@Condition,MapFrom,MapTo)
From (values ('= ','= ''')
,(' OR ',''' OR ')
,(' AND ',''' AND ')
) A (MapFrom,MapTo)
Select @Condition
不好意思,我以前没看到这个
Declare @Condition nvarchar(max) = N'Sev = 300 OR EVC = 102 AND SRC = 380P064 AND XXX = HELLO'
Set @Condition = Replace(Replace(Replace(@Condition,'= ','= '''),' OR ',''' OR '),' AND ',''' AND ')+''''
Select @Condition
返回
Sev = '300' OR EVC = '102' AND SRC = '380P064' AND XXX = 'HELLO'
或者如果你想要原版
Set @Condition=@Condition+''''
Select @Condition = Replace(@Condition,MapFrom,MapTo)
From (values ('= ','= ''')
,(' OR ',''' OR ')
,(' AND ',''' AND ')
) A (MapFrom,MapTo)
Select @Condition
你能再解释一下吗?我不太明白..所以我在动态SQL查询中传递一个参数,在@Condition中传递一个或多个参数,我想把这些值放在相等的内引号后面。例如,Sev=100将变为Sev='100'或Cond=Hi变为Cond='Hi'使用sp_executesql存储过程来执行动态sql。这允许您正确地传递参数。您将自己暴露于sql注入的方式。另外,代码将更难维护。你能解释更多吗?我不太明白..所以我在动态SQL查询中传递一个参数,在@Condition中传递一个或多个参数,我想把这些值放在相等的内引号后面。例如,Sev=100将变为Sev='100'或Cond=Hi变为Cond='Hi'使用sp_executesql存储过程来执行动态sql。这允许您正确地传递参数。您将自己暴露于sql注入的方式。此外,代码将更难维护。Sev=300只是一个示例,它可以是任何东西,字符串的长度可以长达1000 charsHmm。。见我的编辑。。我不太明白。。1000个字符…?你想让它自动完成吗?是的,我想让它自动完成。。您从哪里获得用于检查sql的数据?因为,你基本上需要它来知道你是要检查一个字符串还是一个整数。Sev=300只是一个例子,它可以是任何东西,字符串的长度可以长达1000个字符。。见我的编辑。。我不太明白。。1000个字符…?你想让它自动完成吗?是的,我想让它自动完成。。您从哪里获得用于检查sql的数据?因为,你基本上需要它来知道你是要检查一个字符串还是一个整数。例如,如果我有COND=Hi,我希望它是COND='Hi'@krishnel刚刚看到你的评论,我该如何使用它。让我再试一试,我觉得你是在绕着问题转,而不是通过它@Krishneil@scsimon我怀疑他正在构建一些动态SQL,我猜是UI驱动,如果说例如我有COND=Hi,我希望它是COND='Hi',@krishnel刚刚在顶部看到你的评论,我将如何使用它。让我再试一试,我觉得你是在绕着问题转,而不是通过它@Krishneil@scsimon我怀疑他正在构建一些动态SQL,我猜是UI驱动的