[英]SQL how to check whether a variable contrains non-integer character and remov the non-integer character
[英]How can i reverse integer/non-integer value in SQL Server 2008
我有以下整数值:
50326518
现在我想将其转换为反向,但是我想要的输出是:
18653250
我使用了reverse()
函数,但它返回81562305,但是我想要输出如18653250
我怎样才能做到这一点?
有时值可能像这样F4180000
免责声明:希望以下内容适用于您的2008版本。 我不确定给定十六进制对convert()
样式的支持。 我在2014年。如果无法使用,我将删除或编辑答案,请据此发表评论。
由于它是一个十六进制字符串,并且您实际上想反转字节顺序,因此可以convert()
它convert()
为一个varbinary
并在其上使用reverse()
。 这将逐字节反转它。 convert()
返回varchar
。
SELECT convert(varchar(max), convert(varbinary(max), reverse(convert(varbinary(max), '50326518', 2))), 2)
印刷品:
18653250
注意,由于某种原因,我不得不再次显式convert()
返回reverse()
的返回值,否则似乎会发生一些隐式转换为varchar
情况。 所以这是故意的。
也许还考虑将数据存储为binary
或int
。 否则,很难强制执行理智的数据(我可以在字符串中插入各种有趣的东西,而这些东西根本不是十六进制的。)
我只会做:
select (right(col, 2) + substring(col, 5, 2) + substring(col, 3, 2) + left(col, 2)) as byte_reversed
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.