sql - 根据数据类型获取SQL中字段的最大值

标签 sql select sql-server-2008-r2 max

我正在尝试获取 SQL 中某个字段的最大值。该字段接受数字和非数字字符。如果字段具有值 A、B、C,则结果应为 C。但是,当字段具有 A、B、C、1、2 等值时,结果应为 2。 有人可以帮助我如何实现这一目标吗?

谢谢

See Image

最佳答案

这有效

SELECT TOP 1 IDValue
FROM
(
SELECT 'A' as IDValue, ISNUMERIC('A') tag
UNION
SELECT 'C', ISNUMERIC('C')
UNION
SELECT 'B', ISNUMERIC('B')
UNION
SELECT '1',ISNUMERIC('1')
UNION
SELECT '2',ISNUMERIC('2')
)tmp
ORDER BY tag DESC,IDValue DESC

输出

2

ISNUMERIC()如果表达式为数字,则返回 1,否则返回 0。您可以在 ORDER BY 中使用它来获取最大值。

关于sql - 根据数据类型获取SQL中字段的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40104542/

相关文章:

sql - 选择加入日期范围

php - 保持 Sql 连接打开以迭代许多请求?还是关闭每一步?

sql - 分层查询 - 计算属于父位置和子位置的记录

sql - 子选择(而不是数字常量)恶化优化

sql - SQL 中投影的语法

mysql - 仅从表中选择唯一值,不使用计数(*)

sql - 在 INNER JOIN 中选择 TOP

Python MySQLdb编程错误: 1064 when inserting data

sql - 如何在 Django 中为用户模型加载 sql fixture ?

TSQL DateTime 到 DateKey Int