Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Помочь составить SQL запрос  [new]
q1w1e1
Member

Откуда: Кы-рск
Сообщений: 1034
не могу вспомнить, а также найти .. простой запрос
SELECT a.tip,IIF(ISNULL(spr_tip.tip),"",spr_tip.naim_tip) FROM a LEFT OUTER JOIN spr_tip ON a.tip = VAL(spr_tip.tip)
Если в таблице а есть код типа, а в таблице spr_tip, этого кода нет, как сделать, чтоб запрос не заполнял в наименовании .NULL., а просто написал пробел....
11 окт 11, 10:38    [11417727]     Ответить | Цитировать Сообщить модератору
 Re: Помочь составить SQL запрос  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Надо не одиночный пробел, а столько пробелов, какова размерность поля spr_tip.naim_tip. При этом на NULL надо сравнивать не код, а собственно то поле, которое и предполагается заменять

select ;
     a.tip, ;
     IIF(ISNULL(spr_tip.naim_tip),space(10),spr_tip.naim_tip) as naim_tip ;
FROM a LEFT OUTER JOIN spr_tip ON a.tip = VAL(spr_tip.tip)

Комбинацию IIF(ISNULL(),...,...) можно заменить функцией NVL(), которая делает то же самое

select ;
     a.tip, ;
     NVL(spr_tip.naim_tip, space(10)) as naim_tip ;
FROM a LEFT OUTER JOIN spr_tip ON a.tip = VAL(spr_tip.tip)

Разумеется, результат будет не однозначным, если поле spr_tip.naim_tip само по себе может иметь значение NULL
11 окт 11, 11:10    [11418013]     Ответить | Цитировать Сообщить модератору
 Re: Помочь составить SQL запрос  [new]
q1w1e1
Member

Откуда: Кы-рск
Сообщений: 1034
ВладимирМ,

спасибо..:-), повторил ваш селект точно всё нормально.. у меня стояло вместо space(10), в выражении SPACE(LEN(spr_tip.naim_tip)), ну вдруг поле naim_tip будет длину менять(не во время выполнения select, а со временем), вот на всякий случай и сделал... теперь понятно, что надо точно указывать длину символьного поля и в первом и во втором варианте... спасибо...ВладимирМ,
11 окт 11, 18:26    [11422586]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить