Запрос не работает с таблицей в SQL Server 2008
У меня есть Java-приложение, которое копирует все данные из одной таблицы базы данных Sybase в другую базу данных (SQL Server 2008). Это отлично работает, и я использую jTDS. Теперь я хочу выбрать данные из столбца таблицы, содержащего значения "FLM" и "NONFLM". Я выполнил запрос
select * from table where colName = 'FLM'
на сервере sql, но не дал результата. Я обрезал этот столбец, но не смог получить результат. В таблице есть столбец со значением "FLM". То же самое с другим столбцом. Я не могу найти пробелы ни в одном из тех столбцов, где целочисленное значение было скопировано в строковый столбец. У меня есть все столбцы в виде строки.
4 ответа
Как видно из комментариев, в вашем столбце слишком много символов. Так что либо настройте свой импорт Java (String#trim()
?) или обновите значения в вашей таблице:
UPDATE table SET colName = SUB(colName,0,LEN(colName))
WHERE ASCII(SUBSTRING(colName,LEN(colName),1)) = 0
Осторожно! Это не проверено, поэтому оберните его в транзакцию, прежде чем использовать ее.
Проблема может находиться в базе данных.
Пытаться:
use databasename
go
select * from table where colName = 'FLM'
go
или же:
select * from databasename..table where colName = 'FLM'
Кроме того, если вы должны использовать IN
найти более одного:
select * from databasename..table where colName IN ('FLM', 'NONFLM')
Этот запрос правильный,
Может быть, вы не выбрали правильную базу данных...
каков результат при запуске этого
выбрать * из таблицы