Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 检查字符串值_Sql_Ms Access - Fatal编程技术网

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

我想在SQL中加入一个if语句,确定字符串的值是否等于,我不是指空字符串,而是指由两个引号组成的字符串。我怎样才能做到这一点。我希望SQL看起来像这样:

Select iif(Answer="","No Response", Answer)
From tblAnswers

您需要使用转义字符。在SQL中,我相信是这样的

Answer = "\"\"";
试试这个:

select if(Answer='""', 'No Response', Answer) as Answer
From tblAnswers
确切的语法将随实际数据库的不同而变化。如果数据库不支持if

SQL 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;