powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проанализировать значение символьного поля
7 сообщений из 7, страница 1 из 1
проанализировать значение символьного поля
    #37893922
Сергей Мирный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Помогите, пожалуйста, с запросом:
в таблице есть символьное поле fl_doc, которое надо проанализировать на наличие в нем информации (результат вывести в поле fl_scan). В поле fl_doc могут быть три варианта информации:
1. информация - есть (fl_scan= 'C')
2. значение поля - пусто (fl_scan= 'E')
3. поле не заполнялось - NULL (fl_scan= 'N')

запрос такой:
Код: sql
1.
2.
cStr1= "SELECT a.id_jour,a.fl_doc,CASE a.fl_doc WHEN '' THEN 'E' WHEN NULL THEN 'N' ELSE 'C' END as fl_scan FROM Journal_pp a"
?SQLEXEC(gnConnHandle, cStr1, 'Jour')


В результате в колонке fl_scan значение 'N' не отражается, если в поле fl_doc=NULL.
В остальных случаях отражается правильно: информация есть - 'C', пусто - 'E'

Используется MSSQL Server 2008R2, VFP9+SP1
...
Рейтинг: 0 / 0
проанализировать значение символьного поля
    #37894312
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Мирный
Код: sql
1.
CASE a.fl_doc WHEN '' THEN 'E' WHEN NULL THEN 'N' ELSE 'C' END

а если так
Код: sql
1.
CASE WHEN a.fl_doc='' THEN 'E' WHEN a.fl_doc IS NULL THEN 'N' ELSE 'C' END

?
Вообще это вопрос скорее в bid=1
...
Рейтинг: 0 / 0
проанализировать значение символьного поля
    #37894680
Сергей Мирный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot tanglir]Сергей Мирный
Код: sql
1.
CASE a.fl_doc WHEN '' THEN 'E' WHEN NULL THEN 'N' ELSE 'C' END

а если так
Код: sql
1.
CASE WHEN a.fl_doc='' THEN 'E' WHEN a.fl_doc IS NULL THEN 'N' ELSE 'C' END

?

интересный случай:
если так, то пишет ошибку в синтаксисе:
Код: sql
1.
CASE WHEN a.fl_doc='' THEN 'E' WHEN a.fl_doc IS NULL THEN 'N' ELSE 'C' END


но, например, если указать в условии, то запрос отрабатывает:
Код: sql
1.
cStr1= "SELECT a.id_jour,a.fl_doc,CASE a.fl_doc WHEN '' THEN 'E' WHEN NULL THEN 'N' ELSE 'C' END as fl_scan FROM Journal_pp a WHERE a.fl_doc IS NULL"
...
Рейтинг: 0 / 0
проанализировать значение символьного поля
    #37894684
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Мирныйесли так, то пишет ошибку в синтаксисе:кто пишет - фокс или мсскл?
...
Рейтинг: 0 / 0
проанализировать значение символьного поля
    #37894686
Сергей Мирный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirСергей Мирныйесли так, то пишет ошибку в синтаксисе:кто пишет - фокс или мсскл?
ошибка появляется и в фоксе и в мсскл.
Решение такое - запрос отрабатывает правильно, если так:
Код: sql
1.
cStr1= "SELECT a.id_jour,a.fl_doc,CASE WHEN a.fl_doc ='' THEN 'E' WHEN a.fl_doc IS NULL THEN 'N' ELSE 'C' END as fl_scan FROM Journal_pp a"


Спасибо за помощь!
...
Рейтинг: 0 / 0
проанализировать значение символьного поля
    #37894703
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Мирныйзапрос отрабатывает правильно, если так:
Код: sql
1.
cStr1= "SELECT a.id_jour,a.fl_doc,CASE WHEN a.fl_doc ='' THEN 'E' WHEN a.fl_doc IS NULL THEN 'N' ELSE 'C' END as fl_scan FROM Journal_pp a"

Это абсолютно тот же case when, что и тут 12921603 .
...
Рейтинг: 0 / 0
проанализировать значение символьного поля
    #37894710
Сергей Мирный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirСергей Мирныйзапрос отрабатывает правильно, если так:
Код: sql
1.
cStr1= "SELECT a.id_jour,a.fl_doc,CASE WHEN a.fl_doc ='' THEN 'E' WHEN a.fl_doc IS NULL THEN 'N' ELSE 'C' END as fl_scan FROM Journal_pp a"

Это абсолютно тот же case when, что и тут 12921603 .
Совершенно верно!
Ещё раз спасибо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проанализировать значение символьного поля
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]