Я пытаюсь включить старые записи справочной службы в новое приложение службы поддержки. У меня все еще есть данные из старого справочного приложения, и он использует те же поля, что и новый, но в другом файле. Этот оператор select отлично подходит для нового приложения для поиска всех прошлых вызовов для чего-то определенного, будь то ключевое слово или кто он назначен и т. Д.SQL Union with coalesce (?) In where clause
SELECT status, identity, description, contact, scan_text, extended_desc, allocated_to
FROM helpdesk.table1
WHERE UPPER(allocated_to) = coalesce(?, allocated_to)
AND identity = coalesce(?, identity)
AND description = coalesce(?, description)
AND contact= coalesce(?, contact)
AND UPPER(scan_text) LIKE coalesce(?,scantext)
and upper(extended_desc) like coalesce(?, extended_desc)
ORDER by allocated, identity desc
То, что я пытаюсь сделать, это использовать какой-то союз, так что я могу есть только один ящик для поиска как более новые и старые записи, вместо двух различных коробок и того, чтобы вспомнить, где данные могут быть сохраняются. Я думал, что что-то вроде этого может работать, но я думаю, что предложение where здесь слишком неоднозначно, и я пробовал почти каждую комбинацию, включающую библиотеку перед полями.
Select *
From
(
select status, identity, description, contact, scan_text, extended_desc, allocated_to
from helpdesk.table1
Union
select status, identity, description, contact, scan_text, extended_desc, allocated_to
from helpdesk.table2
)
WHERE UPPER(allocated_to) = coalesce(?, allocated_to)
AND identity = coalesce(?, identity)
AND description = coalesce(?, description)
AND contact= coalesce(?, contact)
AND UPPER(scan_text) LIKE coalesce(?,scantext)
and upper(extended_desc) like coalesce(?, extended_desc)
ORDER by allocated, identity desc
Если я только союз с двумя выбирает, я получаю все записи из обеих таблиц, но мне нужно, чтобы иметь возможность сузить результаты ключевого слова или какой-то другой области, как в первом блоке кода. Если бы кто-то мог указать мне в правильном направлении, я бы очень признателен.
Также я, вероятно, должен был сказать, что это db2, и sql работает в веб-приложении. Поэтому, когда этот sql запускает, он генерирует либо выпадающие окна, либо текстовое поле, чтобы помещать ваши собственные слова, чтобы сузить результаты всех вызовов службы поддержки.
Какая СУБД для этого? Добавьте тег, чтобы указать, используете ли вы 'mysql',' postgresql', 'sql-server',' oracle' или 'db2' - или что-то еще. –
Простите, довольно уверен, что это db2 – esuiker