存储过程中的撇号问题

时间:2016-03-25 13:51:58

标签: sql sql-server

我在sql中有以下case语句

case when fake.join in (''Women'') then ''Women's'' else ''Other'' end' 

在我的存储过程中。我很难让它成为“女性”,而我能找到的唯一可以解决这个问题的人就是说“女人”,但这会让撇号消失。我需要保留撇号。请帮忙!感谢

2 个答案:

答案 0 :(得分:5)

如果这确实是一个独立的声明,那么它应该如下所示:

case when fake.join in ('Women') then 'Women''s' else 'Other' end 

如果你正在使用一些动态SQL构建一个字符串(这与所有撇号转义的情况类似),它应该如下所示:

case when fake.join in (''Women'') then ''Women''''s'' else ''Other'' end' 

编辑:这是你提供的更全面的片段(只需注意'n'和's'之间的4个撇号):

case when sm.LegalName in (''Brigham & Women Hospital'', ''Brigham & Women Faulkner Hospital'') then ''Brigham & Women''''s Hospital'' 
    when sm.LegalName in (''Newton Wellesley Hospital'', ''Massachusetts General Hospital'') then sm.LegalName 
    else ''Other'' end'

然后,您可以将包含此字符串的字符串提供给sp_executesql,它应该为您提供所需的内容。

答案 1 :(得分:1)

如果您希望结果字符串为'Women's',请使用'''Women''s'''

PRINT '''Women''s'''

结果:

'Women's'