Dronton2
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: А как вывести ноль напротив значения f1, если его нет в выборке? Например f1=2 нет в таблице, как вывести "2|0"? | Нужно найти таблицу, в которой есть все значения в поле f1 (типа справочника). И создать запрос, в котором соединить её с вашей таблицей по полю f1 (соединение должно быть LEFT OUTER или RIGHT OUTER). Если у вас значения f1 должны принимать все целочисленные значения в каком-то диапазоне, то вместо справочника используйте запрос типа: Код: SELECT LEVEL n FROM DUAL CONNECT BY LEVEL <= 10 | Добавлено: Gererro, Как я понял, это MS SQL. А эталонная база - ms02. Результаты вашей выборки портит условие "where pr1.type = 'p'and pr2.type = 'p'". Оставьте в where только "where pr1.type = 'p'", а "pr2.type = 'p'" добавьте к JOIN. Код: USE ms01; GO SELECT QUOTENAME( SCHEMA_NAME ( pr1.schema_id ) ) + '.' + QUOTENAME( pr1.name ) as 'Имя процедуры', QUOTENAME( SCHEMA_NAME ( pr2.schema_id ) ) + '.' + QUOTENAME( pr2.name ) as 'Имя процедуры' FROM sys.objects pr1 LEFT OUTER JOIN [MS02].sys.objects pr2 ON pr1.name = pr2.name AND pr1.schema_id = pr2.schema_id AND pr2.type = 'p' WHERE pr1.type = 'p' GO | Или используйте оператор MINUS или EXCEPT, вычитая из проверяемой таблицы эталонную | Всего записей: 460 | Зарегистр. 27-06-2005 | Отправлено: 11:02 18-01-2018 | Исправлено: Dronton2, 12:35 18-01-2018 |
|