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

Откуда:
Сообщений: 3
Есть база с кучей таблиц, работа с базой осуществляется через запросы, которые в самой базе (ms sql server 8.00)
в одном запросе идёт выборка из таблиц, а потом условие такого вида?
WHERE     (dbo.T_Drums.actlocation_Drums <> N'-1') 


Что означает этот запрос? И зачем апострофы?
7 дек 12, 14:40    [13594830]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять запрос с условием where  [new]
iap
Member

Откуда: Москва
Сообщений: 47047
nofate83,

это не запрос, а часть запроса
7 дек 12, 14:44    [13594873]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять запрос с условием where  [new]
gang
Member

Откуда:
Сообщений: 1394
nofate83
Есть база с кучей таблиц, работа с базой осуществляется через запросы, которые в самой базе (ms sql server 8.00)
в одном запросе идёт выборка из таблиц, а потом условие такого вида?
WHERE     (dbo.T_Drums.actlocation_Drums <> N'-1') 


Что означает этот запрос? И зачем апострофы?

Перевод с sql-ного на русский:

ГДЕ ( в_схеме_dbo.таблице_T_Drums.значение_столбца_actlocation_Drums неравно строке "-1" в формате юникод).
7 дек 12, 14:48    [13594922]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять запрос с условием where  [new]
nofate83
Member

Откуда:
Сообщений: 3
А как понять, то что там все значения выше 20, а он выдаёт только одну строку
7 дек 12, 15:36    [13595368]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять запрос с условием where  [new]
Glory
Member

Откуда:
Сообщений: 104760
nofate83
А как понять, то что там все значения выше 20, а он выдаёт только одну строку

А почему вы решили, что строку '-1' сервер будет воспринимать как число -1 ?
7 дек 12, 15:37    [13595387]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять запрос с условием where  [new]
gang
Member

Откуда:
Сообщений: 1394
nofate83, Никак не понять пока здесь не появится полный текст запроса.
7 дек 12, 16:25    [13595850]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять запрос с условием where  [new]
nofate83
Member

Откуда:
Сообщений: 3
Полный текст запроса:
SELECT     dbo.T_Drums.ID, dbo.T_DMS.Mass_DMS, dbo.T_Drums.ExportDR_Drums AS Height, dbo.A_CP92Temp.actlocation_Drums, 
                      dbo.T_DMS.aActivity_DMS + dbo.T_DMS.bActivity_DMS AS Activity_DMS, dbo.T_DMS.DoserateMax_DMS, dbo.T_PalStrorage.NoStack_PalStorage, 
                      dbo.T_PalStrorage.NoOrder_PalStroage, dbo.TB_ContTypes.CRadius, dbo.T_PalStrorage.chkSel
FROM         dbo.T_Drums INNER JOIN
                      dbo.A_CP92Temp ON dbo.T_Drums.lastActionDate_Drums = dbo.A_CP92Temp.MaxD INNER JOIN
                      dbo.T_PalStrorage ON dbo.T_Drums.ID = dbo.T_PalStrorage.DrumID_PalStrorage INNER JOIN
                      dbo.TB_ContTypes ON dbo.T_Drums.Type_Drums = dbo.TB_ContTypes.ID LEFT OUTER JOIN
                      dbo.T_DMS ON dbo.T_Drums.MeasID_CP6_Drums = dbo.T_DMS.ID
WHERE     (dbo.T_Drums.actlocation_Drums <> N'-1')

В таблице T_Drums значений много и по этой колонке у них значения от нуля до 30, есть пустые, отрицательных и текста нет. Тип этой колонки nvarchar.
По исполнению запроса отдаёт одну запись у которой по этой колонке 12(менял на разные от 0-30), поставил -1 и её не выдало. Вроде как правильно, только по какому принципу он откидывает все остальные записи у которых 0-30 это значение. Или они просто по связям таблиц отсеиваются? Это не будет ошибкой если по табличным связям не все будет находиться?
7 дек 12, 17:52    [13596408]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять запрос с условием where  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
nofate83
Или они просто по связям таблиц отсеиваются?
Очевидно, по связям.

Да выполните просто этот запрос без WHERE, увидите, что там отсеивается по связям.
7 дек 12, 18:22    [13596540]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить