【发布时间】:2020-10-02 13:30:28
【问题描述】:
我有一个 SELECT 语句,我在其中从表中选择多行,除了其中一行之外的所有行都是 STRING 值,另一行是 INT。我希望能够读取包含整数的行,并将该行转换为 Int,这样我就可以使用它与屏幕上的其他 INT 值进行比较。
如果我现在尝试比较它,它会删除尾随的 0,因为它正在将其作为字符串读取,因此它认为 '12' 大于 '40',因为它正在读取 '12'(屏幕上的值)和“4”(从表中)删除 0。
我正在使用 Java 在屏幕上获取一个值,这工作正常,它会将其转换为 INT,并且可以正常显示,因此我现在需要将“年龄”列转换为 INT,以便将其与屏幕上的值,SQL 值不删除末尾的 0,因为它当前将其读取为字符串。
下面是我的 SELECT 语句:
SELECT name, age, city, department
FROM myTable
WHERE age >= '"+valueOnScreen+"'
如果 age = 25 和 valueOnScreen = 20,它会正常工作,因为它认为它是 25 和 20。
如果 age = 20 和 valueOnScreen = 5,它将不起作用,因为它认为它是 2 和 5
我试过了:
DECLARE @AGE INT
SELECT name, @AGE = age, city, department
FROM myTable
WHERE age >= '"+valueOnScreen+"'
我收到错误:'为变量赋值的 SELECT 语句不得与数据检索操作结合使用。;嵌套异常是 com.microsoft.sqlserver.jdbc.SQLServerException:为变量赋值的 SELECT 语句不得与数据检索操作结合使用'
任何帮助将不胜感激,谢谢。
【问题讨论】:
-
我认为您对“行”和“列”之间的区别感到困惑,这使得问题难以理解。同时标记您正在使用的数据库。