Запрос не работает с таблицей в SQL Server 2008 - PullRequest
1 голос
/ 11 января 2012

У меня есть Java-приложение, которое копирует все данные из одной таблицы базы данных Sybase в другую базу данных (SQL Server 2008). Это отлично работает, и я использую jTDS. Теперь я хочу выбрать данные из столбца таблицы, содержащего значения «FLM» и «NONFLM». Я выполнил запрос

select * from table where colName = 'FLM'

на сервере sql, но не дал результата. Я обрезал этот столбец, но не смог получить результат. В таблице есть столбец со значением «FLM». То же самое с другим столбцом. Я не могу найти пробелы ни в одном из тех столбцов, где целочисленное значение было скопировано в строковый столбец. У меня есть все столбцы в виде строки.

Ответы [ 4 ]

1 голос
/ 11 января 2012

Как видно из комментариев, в вашем столбце слишком много символов.Так что либо скорректируйте импорт Java (String#trim()?) Или обновите значения в вашей таблице:

UPDATE table SET colName = SUB(colName,0,LEN(colName))   
WHERE ASCII(SUBSTRING(colName,LEN(colName),1)) = 0

Осторожно! Это не проверено, поэтому оберните его в транзакцию перед использованиемэто.

0 голосов
/ 11 января 2012

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

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

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

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

0 голосов
/ 11 января 2012

Проблема может находиться в базе данных.

Попробуйте:

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')
0 голосов
/ 11 января 2012
select * from table where colName IN ('FLM', 'NONFLM')
...