我正在將一些 SQL 腳本從 Oracle 遷移到 SQL Server,并且在嘗試將 Oracle 轉換TO_NUMBER為 T-SQL 代碼時遇到了一個問題。在網上瀏覽了一段時間,但從未找到答案,但他們都說要使用CAST或CONVERTwith轉換十六進制VARBINARY。
我遇到的問題的一個例子如下。
在甲骨文中:
select
to_number( '000000000000000000001111', 'XXXXXXXXXXXXXXXXXXXXXXXX' )
from
dual
回傳 4369
嘗試使用 T-SQL 時CONVERT:
select
CONVERT(VARBINARY, '000000000000000000001111')
回傳 0x303030303030303030303030303030303030303031313131
和
select
CONVERT(INT, CONVERT(VARBINARY, '000000000000000000001111'))
回傳 825307441
任何幫助將不勝感激。
謝謝
uj5u.com熱心網友回復:
TSQL 有二進制文字,所以你可以這樣寫:
select CONVERT(INT, 0x000000000000000000001111)
輸出
4369
如果您以十六進制字串開頭,則可以使用具有1 或 2二進制樣式的convert ,因此
select convert(int, convert(varbinary(1024),'000000000000000000001111', 2))
輸出
4369
uj5u.com熱心網友回復:
這應該可以完成作業。
select convert(bigint, convert(Varbinary(MAX), '000000000000000000001111',2))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/376653.html
標籤:sql-server 甲骨文
上一篇:SQL中的兩個條件過濾
