2012-01-11 36 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')