Преобразование T-SQL в GCP BigQuery SQL. Как сделать null <> null в BQ SQL таким же, как SQL Server T-SQL?

Попытка преобразовать сценарий SQL из SQL Server T-SQL в GCP BigQuery SQL, и вам необходимо поддерживать параметр ANSI NULL, чтобы обеспечить те же результаты. Есть ли способ заставить Google BigQuery возвращать true при сравнении null = null (например, «null = null is true» ниже)?

Пример для T-SQL и BigQuery, показывающий разные результаты:

      --GCP BigQuery test:
begin
declare null1 string;
declare null2 string;
select case when null1 = null2 then 'null = null is true' 
       else 'null = null is false'
       end as bqsqlnulltest;
end 

-- T-SQL (SQL Server) test:
set ansi_nulls off;
declare @null1 varchar(30);
declare @null2 varchar(30);
select case when @null1 = @null2 then 'null = null is true' 
else 'null = null is false'
end as tsqlnulltest;

1 ответ

Я не уверен, что именно это соответствует вашему запросу. Но вы можете использовать эту конструкцию:

      where (x = y) is not false

Или в вашем случае:

      where (null1 = null2) is not false
Другие вопросы по тегам