Sql 检查字符串值
我想在SQL中加入一个if语句,确定字符串的值是否等于,我不是指空字符串,而是指由两个引号组成的字符串。我怎样才能做到这一点。我希望SQL看起来像这样:Sql 检查字符串值,sql,ms-access,Sql,Ms Access,我想在SQL中加入一个if语句,确定字符串的值是否等于,我不是指空字符串,而是指由两个引号组成的字符串。我怎样才能做到这一点。我希望SQL看起来像这样: Select iif(Answer="","No Response", Answer) From tblAnswers 您需要使用转义字符。在SQL中,我相信是这样的 Answer = "\"\""; 试试这个: select if(Answer='""', 'No Response', Answer) as Answer From tbl
Select iif(Answer="","No Response", Answer)
From tblAnswers
您需要使用转义字符。在SQL中,我相信是这样的
Answer = "\"\"";
试试这个:
select if(Answer='""', 'No Response', Answer) as Answer
From tblAnswers
确切的语法将随实际数据库的不同而变化。如果数据库不支持ifSQL Server,则可能需要一个案例:
SELECT ISNULL(NULLIF(Answer, ""), "No Response")
尝试:
选择CASE WHEN Answer=然后选择'No Response',否则从tblAnswers回答结束从iif的使用情况来看,您似乎正在使用Microsoft Access。要转义双引号,您应该能够执行以下操作:
Select iif(Answer = """""", "No Response", Answer)
From tblAnswers
甲骨文
select decode(answer,"''''","No response",answer) from tblanswers
如果列包含两个单引号,请使用:
SELECT ISNULL(NULLIF(Answer, ''''), 'No Response') Answer
FROM tblAnswers
Access数据库引擎将识别包含在单引号或双引号中的字符串文字。所以,虽然这一个会起作用
Select IIf(Answer = """""", "No Response", Answer)
From tblAnswers;
。。。在我看来,单引号会让事情变得更清楚,而且当我的眼睛疲劳时,我不太可能忘记正确数量的双引号。所以我会改做这个
Select IIf(Answer = '""', 'No Response', Answer)
From tblAnswers;
如果您还希望在答案为Null或空字符串时不输出响应,请尝试以下操作
Select IIf(Answer = '""' OR Len(Answer & "") = 0, 'No Response', Answer)
From tblAnswers;
@波西米亚人——我不太确定。iif完全是微软Access的赠品,它不支持完整的SQL。不知道它是否允许CASE语句。它肯定不会与Access一起工作,因为Access/Jet/ACE SQL没有选择CASE。但针对“”的测试肯定会奏效。用户如何使用Access输入两个双引号,我不知道-当我尝试使用Access时,我得到一个错误,显示它将的条目解释为试图存储一个零长度字符串,我在任何字段中都不允许。感谢您阅读iif语句并意识到我忘记提到的内容-我使用的是MS Access。很好用!这是不正确的。OP表示字符串将为2个引号,不为空。不适用于Access/Jet/ACE,但OP未指示数据库引擎。不适用于Access/Jet/ACE,但OP未指示数据库引擎。不适用于Access/Jet/ACE,但OP未指示数据库引擎。
Select IIf(Answer = '""', 'No Response', Answer)
From tblAnswers;
Select IIf(Answer = '""' OR Len(Answer & "") = 0, 'No Response', Answer)
From tblAnswers;
SELECT IIF(Answer = CHAR(34) & CHAR(34), 'No Response', Answer)
FROM tblAnswers;