Значения в вертикальных столбцах с использованием оператора IN - SQL - PullRequest
0 голосов
/ 29 февраля 2020

Я столкнулся с запросом, в котором несколько значений заключены в вертикальные черты дальше оператора IN. Кто-нибудь может посоветовать использование и влияние вертикальных полос в этом сценарии?

Пример:

SELECT businesspa0_.C_BP_Group_ID AS C1_139_0_,
FROM C_BP_Group businesspa0_
WHERE businesspa0_.C_BP_Group_ID in( |713643BF6582479BAD2AF21B80836AA2|, |EAF66367C3D04B30A2F3A1E953A6E703|, |26A1FE81E1EA4A6E8D3517E8232264D1|, |1B7DCAD27AF64D16ADCFB4EBE8600078|, |A61E061A702547BB8E1D6B749B4A502A|)

Ответы [ 2 ]

0 голосов
/ 29 февраля 2020

Это неверный синтаксис SQL. Вы можете использовать этот запрос, как показано ниже:

SELECT businesspa0_.C_BP_Group_ID AS C1_139_0_,
FROM C_BP_Group businesspa0_
WHERE businesspa0_.C_BP_Group_ID in( '713643BF6582479BAD2AF21B80836AA2', 'EAF66367C3D04B30A2F3A1E953A6E703', '26A1FE81E1EA4A6E8D3517E8232264D1', '1B7DCAD27AF64D16ADCFB4EBE8600078', 'A61E061A702547BB8E1D6B749B4A502A')
0 голосов
/ 29 февраля 2020

Это слишком долго для комментария.

Я не верю, что | означает что-либо в стандарте SQL. Двойная вертикальная черта || используется для конкатенации строк.

Тем не менее, во многих базах данных | используется как инфиксный, побитовый оператор or. Это явно не использование в этом случае, потому что не существует «левого» оператора для первого использования.

Может быть некоторая база данных, которая поддерживает одиночные вертикальные черты как нечто, что имело бы смысл в этом контексте.

Вы, вероятно, полностью знаете, что строки должны быть заключены в одинарные кавычки. Ваши значения выглядят как двоичные шестнадцатеричные значения. Как они представлены на входе, зависит от базы данных. Например, в Postgres это будет:

x'A61E061A702547BB8E1D6B749B4A502A'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...