【发布时间】:2011-03-11 04:16:40
【问题描述】:
我在 MS SQL Server 2008 中有一个表,其中有一个名为 WONO 的 varchar 列。对于大多数记录,该字段的值是整数的左填充字符串表示,例如:
' 384564'
但是,在某些情况下,该字段中有一个非整数值。我想在 WONO 列中选择具有最大整数的记录,忽略那些没有整数的记录。对此的选择语句是什么?
【问题讨论】:
标签: sql-server tsql
我在 MS SQL Server 2008 中有一个表,其中有一个名为 WONO 的 varchar 列。对于大多数记录,该字段的值是整数的左填充字符串表示,例如:
' 384564'
但是,在某些情况下,该字段中有一个非整数值。我想在 WONO 列中选择具有最大整数的记录,忽略那些没有整数的记录。对此的选择语句是什么?
【问题讨论】:
标签: sql-server tsql
SELECT MAX(cast(WONO as integer)) AS WONO FROM
(
SELECT WONO
FROM YourTable
WHERE ISNUMERIC(WONO) = 1
) SubTable
请记住,当您有 1E1 或 2D2 之类的内容时,这可能会显得很奇怪,因为 ISNUMERIC 处理某些字符串的方式(1E1 和 2D2 实际上被 ISNUMERIC 视为指数)。如果这成为问题,您可以查看这个自定义函数,IsReallyNumeric。
【讨论】: