我希望在选择它们后立即将以下两列转换为整数(它们在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";
不确定它是否正确,因为我似乎收到语法错误。
我如何将文本转换为双重
答案 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)