Операторы SQL CASE и MINUS - PullRequest
       14

Операторы SQL CASE и MINUS

1 голос
/ 08 ноября 2010

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

Единственные другие возможности, о которых я могу подумать, еще менее вероятны - могут ли конкатенации (||) или литералы в одинарных кавычках, которые присутствуют в результатах CASE, испортить ситуацию?

1 Ответ

1 голос
/ 08 ноября 2010

В вашем операторе SELECT есть ли еще поля кроме этого CASE? MINUS пытается сравнить целые строки, возможно, некоторые другие значения не совпадают.

Вы пытались обрезать корпус (TRIM(CASE foo WHEN..), чтобы увидеть, не поскользнулись ли вы?

Все ли ветви возвращают VARCHAR2? Иногда, даже если одна ветвь возвращает число или дату, это может привести к путанице в типах.

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