如何添加查询位置,转换或替换或最大值!
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
答案 0 :(得分:0)
不确定我是否给出了一个好答案,但您可以将查询编写为
Select max(MyValue) from (Select Convert(int, replace((QueueNum),'-','')) as MyValue from [Queue]) MyTable
它的作用是在内存中创建一个临时表,该表是一列MyValue和Int类型,然后从该表中找到Max。我注意到有时候“MyTable”[table alias]在这样的查询中很重要,特别是在SQl Server上执行。
答案 1 :(得分:0)
将您的条件置于有子句
答案 2 :(得分:0)
这是你想要的吗?
SELECT MAX(CONVERT(INT, REPLACE((QueueNum),'-','')))
FROM Queue
WHERE QueueNum LIKE '1981-2%'
答案 3 :(得分:0)
我猜这是MSSql数据库,在这种情况下尝试使用以下语句而不进行任何转换:
select TOP 1
QueueNum
from Queue where QueueNum like '1981-2-%'
order by LEN(QueueNum) desc, QueueNum desc