如何添加查询位置、转换或替换或最大值!
max(convert(int,replace(( QueueNum ),'-',''))) from [Queue]
我想在 QueueNum 的 where 子句中返回最大的有特殊内容的记录。
编辑:
数据 :
1981-1-1232
1981-1-1235
1981-1-1234
1981-2-1
1981-2-2
1981-2-13
如何返回刚开始的记录的最大值 1981-2
如何添加查询位置、转换或替换或最大值!
max(convert(int,replace(( QueueNum ),'-',''))) from [Queue]
我想在 QueueNum 的 where 子句中返回最大的有特殊内容的记录。
编辑:
数据 :
1981-1-1232
1981-1-1235
1981-1-1234
1981-2-1
1981-2-2
1981-2-13
如何返回刚开始的记录的最大值 1981-2
不确定我是否给出了一个好的答案,但您可以将您的查询写为
Select max(MyValue) from (Select Convert(int, replace((QueueNum),'-','')) as MyValue from [Queue]) MyTable
它的作用是在内存中创建一个临时表,该表具有一列 MyValue 和 Int 类型,然后从该表中找到 Max。我注意到有时“MyTable”[表别名]在这样的查询中很重要,尤其是在 SQl Server 上执行。
把你的条件放在有条款中
这是你想要的吗?
SELECT MAX(CONVERT(INT, REPLACE((QueueNum),'-','')))
FROM Queue
WHERE QueueNum LIKE '1981-2%'
我猜在这种情况下它是 MSSql 数据库尝试使用以下语句而不进行任何转换:
select TOP 1
QueueNum
from Queue where QueueNum like '1981-2-%'
order by LEN(QueueNum) desc, QueueNum desc