Abdalla Ben Omran Ответов: 2

Почему (где) условие дает мне только пустой столбец ?


Из моей базы данных (returnShipmentPos) я должен получить [ReferenceID] where = R-100235729-200'
но я не получаю никакого результата . у меня просто пустая колонка ?!

Я буду счастлив получить объяснение

Что я уже пробовал:

select ReferenceID 

from returnShipmentPos

where ReferenceID = 'R-100235729-200'

2 Ответов

Рейтинг:
2

OriginalGriff

Во-первых, почему вы возвращаете ReferenceID, который вы уже знаете? Если вы знаете его, то нет никакого смысла запрашивать базу данных, чтобы найти его ... Конечно, возвращайте счетчик или что-то подобное, но извлекать значение, по которому вы фильтруете, несколько глупо.

Во - вторых, если он не возвращает столбцов, это означает, что в таблице нет совпадающих значений-вы можете запрашивать не ту таблицу, не ту базу данных или искать неправильное значение идентификатора. Вы не получите "пустой столбец" обратно из этого запроса: если вы видите пустые столбцы, я бы посмотрел на "необработанные данные", возвращаемые запросом, и на то, что вы делаете с ними после вызова SQL. Без вашей базы данных и содержащихся в ней данных мы не сможем вам помочь - поэтому начните с SSMS и вставьте Ваш запрос в новое окно запроса.
Если вы не получаете строк, то измените его на:

SELECT ReferenceID FROM returnShipmentPos WHERE ReferenceID LIKE '%R-100235729-200%'
И посмотрим, изменит ли это результаты. (Равенство требует, чтобы данные точно совпадали; LIKE будет совпадать, если строка находится в любом месте данных.
Если это не поможет, полностью удалите предложение WHERE и посмотрите, что именно возвращается.

Извините - мы не можем сделать ничего из этого для вас!


[no name]

Привет Павел, вы не должны быть к сожалению . вы очень помогли мне своим крутым объяснением, что то, что мне нужно было хорошее объяснение, помогает мне гораздо больше, чем уже существующий код .

таким образом, значение, которое я ввел, равно 0 строкам, но с другим значением оно дает мне заднюю строку с некоторым числом .

Я благодарю вас как всегда

OriginalGriff

Всегда пожалуйста!

Рейтинг:
2

dinesh42

Значение, которое вы использовали в своем условии where, может содержать некоторые символы юникода, которые не видны невооруженным глазом, но SQL server может хранить их в столбце. В этом случае, если вы скопируете значение и используете его в своем условии where, SQL не будет выполнять точное сравнение со значениями UNICODE. Сначала попробуйте определить, есть ли в вашем столбце referenceId какие-либо символы юникода.