ms数据库一个字段是16进制存储的,能否用Max()函数,获得最大值?

C_NET_rgz 2011-03-18 11:16:15
如题,请遇到过这个问题的朋友,告诉我一下,谢谢!
...全文
57 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Shawn 2011-03-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 feilniu 的回复:]

试试就知。直接MAX。
[/Quote]
if OBJECT_ID('tempdb..#temp') is not null drop table #temp
create table #temp
(
id10 int,
id16 varbinary
)
insert #temp(id10)
select 1 union all select 2 union all select 3 union all
select 4 union all select 5 union all select 6 union all
select 7 union all select 8 union all select 9 union all
select 10 union all select 11 union all select 12 union all
select 13 union all select 14 union all select 15 union all
select 16 union all select 17 union all select 18
go
--update:
update #temp
set id16 = id10+1
--sql:
SELECT max(CONVERT(varbinary, id10)), MAX(id16) from #temp
/*
(无列名) (无列名)
0x00000012 0x13
*/
feilniu 2011-03-18
  • 打赏
  • 举报
回复
试试就知。直接MAX。
快溜 2011-03-18
  • 打赏
  • 举报
回复
具体转换可以百度sql十六进制转换十进制的方法,很多。
快溜 2011-03-18
  • 打赏
  • 举报
回复
你可以转换为10进制再用max
zhengdows 2011-03-18
  • 打赏
  • 举报
回复
你说的16进制 是不是以字符串形式存储的 '123456789ABCDEF' 形式的数据?
这种比较大小可以先比较LEN(COL),
LEN(COL)相同的再取MAX(COL)

如果你的字符串长度都一样,前边补0,那就可以直接取MAX(LEN)

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧