2012-01-11 58 views
1

我有一个Java应用程序,从Sybase数据库的一个表中的所有数据复制到另一个数据库(SQL Server 2008)。这工作正常,我正在使用jTDS。现在我想从包含值“FLM”和“NONFLM”的表列中选择数据。我执行查询查询与表中没有工作在SQL Server 2008

select * from table where colName = 'FLM' 

在sql server但没有返回任何结果。我修剪了这一列,但无法得到结果。该表具有“FLM”值的列。同样的事情与其他列在任何地方整数值被复制到字符串列作品的仅有的一列我找不到空白。我有所有的列作为字符串。

+1

你明白了什么,当你使用'COLNAME LIKE '%FLM%''? – 2012-01-11 10:29:13

+0

@Ocaso Protal使用like时可以工作。 – kinkajou 2012-01-11 10:38:21

+0

好的,下一次尝试:你会得到什么'SELECT colName,LEN(colName)FROM table WHERE colName LIKE'%FLM%'' – 2012-01-11 10:49:14

回答

1

正如在评论中看到,有一个角色太多了你的专栏。因此,要么调整你的java进口或在更新表中的值(String#trim()):

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

当心!这是未经测试的,所以把它包在一个事务中,你使用它之前。

0
select * from table where colName IN ('FLM', 'NONFLM') 
+0

这给SSMS空的结果。其实我只想选择FLM。数据在传输过程中发生了某种情况。 – kinkajou 2012-01-11 10:36:32

-1

这个查询是正确的,

可能是你没有选择正确的数据库...

的结果是什么,当你运行该

SELECT * FROM表

+0

查询不正确,因为OP正在查找colName为FLM或NONFLM的结果 – Curt 2012-01-11 10:31:12

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')