查询时将文本转换为sqlite中的int

时间:2013-11-18 20:36:38

标签: c# sqlite

我希望在选择它们后立即将以下两列转换为整数(它们在SQlite数据库中作为文本放置)。

 string sql4 = "select seq, maxLen from abc where maxLen > 30";

我认为可能会这样做..(使用演员表)

 string sql4 = "select cast( seq as int, maxLen as int) from abc where maxLen > 30";

不确定它是否正确,因为我似乎收到语法错误。

我如何将文本转换为双重

2 个答案:

答案 0 :(得分:11)

您需要转换where子句,而不是选择它。

string sql4 = "select seq, maxLen from abc where CAST(maxLen as INTEGER) > 30";

同样在您当前的cast版本中,由于CAST适用于单个字段,因此无法使用。

对于你的问题:

  

我如何将文本转换为双重

将其转为真实,如:

CAST(maxLen as REAL)

答案 1 :(得分:2)

语法问题是你将两个强制转换放在一个强制转换子句中。试试这个:

string sql4 = "select cast(seq as int), cast(maxLen as int) 
               from abc where maxLen > 30"

就像Habib指出的那样,你应该对where子句进行类型转换,否则比较不是数字而是文本。

string sql4 = "select cast(seq as int), cast(maxLen as int) 
               from abc where cast(maxLen as int) > 30"

而且,cast to float很简单,使用float而不是int(或者你可以在SQLite中使用相同数据类型的REAL)

cast(maxLen as float)