Проверка строкового значения - PullRequest
0 голосов
/ 05 августа 2011

Я хотел бы включить в SQL оператор if, определяющий, равно ли значение строки «» (и я не имею в виду пустую строку - я имею в виду строку из двух кавычек).Как я могу это сделать.Я бы хотел, чтобы SQL выглядел примерно так:

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

Ответы [ 10 ]

6 голосов
/ 05 августа 2011
SELECT CASE
       WHEN Answer = '""' THEN 'No Response'
       ELSE Answer
       END AS Answer
  FROM tblAnswers
2 голосов
/ 05 августа 2011

Движок базы данных Access распознает строковые литералы, заключенные в одинарные или двойные кавычки. Так что, хотя этот будет работать ...

Select IIf(Answer = """""", "No Response", Answer)
From tblAnswers;

... одиночные кавычки прояснили бы, ИМО, и я бы с меньшей вероятностью потерял правильное количество двойных кавычек, когда мои глаза устали. Так что я бы сделал это вместо ...

Select IIf(Answer = '""', 'No Response', Answer)
From tblAnswers;

Если вы также хотите вывести Нет ответа , когда Ответ пуст или пустая строка, попробуйте это ...

Select IIf(Answer = '""' OR Len(Answer & "") = 0, 'No Response', Answer)
From tblAnswers;
2 голосов
/ 05 августа 2011

Похоже, вы используете Microsoft Access (судя по использованию iif). Чтобы избежать двойных кавычек, вы должны уметь:

Select iif(Answer = """""", "No Response", Answer)
From tblAnswers
2 голосов
/ 05 августа 2011

Попробуйте:

SELECT CASE WHEN Answer = '' THEN 'No Response' ELSE Answer END FROM tblAnswers

2 голосов
/ 05 августа 2011

SQL Server:

SELECT ISNULL(NULLIF(Answer, ""), "No Response")
0 голосов
/ 12 августа 2011
SELECT IIF(Answer = CHAR(34) & CHAR(34), 'No Response', Answer)
  FROM tblAnswers;
0 голосов
/ 05 августа 2011
SELECT ISNULL(NULLIF(Answer,'""'), 'No Response') Answer
FROM tblAnswers

Если столбец содержит две одинарные кавычки, используйте это:

SELECT ISNULL(NULLIF(Answer, ''''), 'No Response') Answer
FROM tblAnswers
0 голосов
/ 05 августа 2011

для Oracle

select decode(answer,"''''","No response",answer) from tblanswers 
0 голосов
/ 05 августа 2011

Попробуйте это:

select if(Answer='""', 'No Response', Answer) as Answer
From tblAnswers

Точный синтаксис зависит от вашей фактической базы данных. Вам может понадобиться CASE, если ваша БД не поддерживает if

0 голосов
/ 05 августа 2011

Вам нужно использовать escape-символ.В SQL я верю, что это будет

Answer = "\"\"";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...