Случай в списке - Таблица

0

Вопрос

Я пытаюсь отфильтровать огромное количество данных, поэтому я решил создать вычисляемое поле и использовать case, если product_id в списке, то "1", еще "0" , но по какой-то причине это было синтаксической ошибкой.

это мое вычисляемое поле:

В случае, когда product_id ( '31049','31048','26166','27816','26031','28861','28864','28863','28203','28110','20641','38112','45174','20645','28404','20646','20648','26159','33287','31417','40551','41020','40550','40550','40553','40554','29804','29941','31430','33354','36730','26073','31432','31433','31431','38154','38166','26029','28341','45138','38069','42069','26060','26060','33886','33886','28392','29518','44879','20651','20655','42914','37535','28031','27588','29297','37688','37709','29551','29551','30183','29550','26187','29549','41348') ТОГДА '1' ЕЩЕ '0' Конец

Есть идеи, кому это следует написать?

Чемб заранее :)

3

Лучший ответ

2

На примере набора данных это работает:

SELECT RIDE_ID as ri,
CASE 
 WHEN ri in ('5EB0FAD625CFAEAB', '5A9314E3AF8DCC30') THEN '1'
 ELSE '0'
END AS result
FROM CITIBIKE_TRIPS LIMIT 10; 

Я получаю: enter image description here

2021-11-18 09:26:23

да, это работает в базе данных, но не в таблице :) Я не мог запустить его в вычисляемом поле
Razan Aldossary

Значит, ошибка тогда в таблице, а не в снежинке? К сожалению, я не знаком с тем, как вычисляемые поля работают в таблице.
Sergiu
0

да, это работает в базе данных, но не в таблице :) Я не мог запустить его в вычисляемом поле

Возможно, используя LATERAL позволит запустить его из таблицы:

CREATE OR REPLACE TABLE t(ID  INT, product_id TEXT);
INSERT IGNORE INTO t VALUES (1, '31049'),(2,'31048'), (3, '100');


SELECT *
FROM t
,LATERAL (SELECT CASE WHEN t.product_id IN ( '31049','31048','26166','27816'/*...*/) 
                      THEN '1' ELSE '0' END) AS s(result);

enter image description here

2021-11-18 16:05:47
0

Один из вариантов— создайте таблицу с вашими ключами, которые вы хотите отфильтровать, а затем используйте соединение, чтобы позволить базе данных выполнять работу. Могло бы быть проще в обслуживании. Вероятно, более эффективный

Другой вариант-создать набор в таблице на основе поля product_id. Определите этот набор, проверив нужные идентификаторы продуктов, а затем поместите набор на полку фильтра для фильтрации, чтобы включить или исключить идентификаторы продуктов в свой набор.

2021-11-20 00:36:47

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................