存储过程中的撇号问题

use*_*185 0 sql sql-server

我在sql中有以下case语句

case when fake.join in (''Women'') then ''Women's'' else ''Other'' end' 
Run Code Online (Sandbox Code Playgroud)

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

mor*_*rgb 5

如果这是一个真正的独立语句,那么它应该如下所示:

case when fake.join in ('Women') then 'Women''s' else 'Other' end 
Run Code Online (Sandbox Code Playgroud)

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

case when fake.join in (''Women'') then ''Women''''s'' else ''Other'' end' 
Run Code Online (Sandbox Code Playgroud)

编辑:这是你提供的更完整的片段(只需注意'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'
Run Code Online (Sandbox Code Playgroud)

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