2013-06-13 3 views
2

SELECT NULLIF (1> 0, 1);операторы сравнения в ms sql server

В MySQL, который возвращает NULL. В SQL Server он дает синтаксическую ошибку из-за <. например.

SELECT 1> 0;

Это тоже отлично работает в MySQL, но не в SQL Server. Любые идеи относительно того, что я могу сделать, чтобы обойти это?

Спасибо!

+0

вы пытались использовать случай? –

+0

В SQL Server 'NULLIF' ожидает выражение * scalar *, а не выражение * boolean *. В SQL Server 2012 'IIF' принимает логические выражения (и только булевы выражения), поэтому вы можете переписать это как' SELECT IIF (1> 0, NULL, 1); '- я думаю. Я не уверен, какой результат вы ожидаете (например, что возвращает MySQL, если вы замените выражение на 1 <0? Я не могу отслеживать его сумасшедшие правила и поведение). –

ответ

3

MySQL более гибкий, чем другие базы данных, используя вычисления в запросах. Вы можете использовать CASE заявления в SQL Server, чтобы достичь тех же результатов, хотя:

SELECT CASE WHEN 1 > 0 THEN 1 ELSE 0 END 
Смежные вопросы