我有两个名为Entry_Data和Data的表
Entry_Data有三列:
EntryID DataID DataTypeID
1 50 18
2 49 59
30 28 16
数据有两列:
数据 ID 值
50 0x00000000033654
49 可拆卸
28 E:\Test.txt
Value 列是一个 nvarchar 字段。
我在尝试将以 0x 开头的所有值字段转换为 int 时编写了左连接,以便可以将十六进制值转换为有意义且人类可读的值,但是我收到错误:
将 nvarchar 值 '0x00000000033654' 转换为数据类型 int 时转换失败
SELECT TOP 100
Entry_Data.DataTypeID AS DataTypeID,
CAST(Data.Value AS nvarchar(440)) AS Value,
Data.DataID AS DataID
FROM ActivityLog.Entry_Data
LEFT JOIN ActivityLog.Data
ON ActivityLog.Entry_Data.DataID =
CASE
WHEN DataTypeID = 18 AND
Value LIKE '%0x%' THEN CONVERT(nvarchar, CONVERT(int, Value, 1))
ELSE DataTypeID
END
WHERE DataTypeID = 18