Запрос не работает с таблицей в 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')
select * from table where colName IN ('FLM', 'NONFLM')

Этот запрос правильный,

Может быть, вы не выбрали правильную базу данных...

каков результат при запуске этого

выбрать * из таблицы

Другие вопросы по тегам