RDa*_*ata 2 sql sql-server json sql-server-json json-value
我在其中一列中有一个包含 JSON 数据的表,我正在尝试解析 JSON 数据并插入到临时表中
DECLARE @TEMPTABLE
(
ID INT,
Status NVARCHAR(50),
Cost DECIMAL(20, 0)
)
INSERT INTO @TEMPTABLE
SELECT
ID,
JSON_VALUE(mydata, '$.Status') AS Status,
JSON_VALUE(mydata, '$.Cost') AS Cost
FROM Expense
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
将数据类型 nvarchar 转换为数字时出错
如果我注释掉该Cost列,同样可以正常工作。
成本表中的示例 JSON 数据
| ID | mydata
+----+-------------------------------------
| 1 | {"Status":"Shipped","Cost":"$10.50"}
Run Code Online (Sandbox Code Playgroud)
您可以将该值转换为 MONEY。它比decimal()更宽容一点
例子
Declare @Expense Table ([ID] int,mydata varchar(50))
Insert Into @Expense Values
(1,'{"Status":"Shipped","Cost":"$10.50"}')
SELECT ID
,JSON_VALUE(mydata,'$.Status') as Status
,try_convert(money,JSON_VALUE(mydata,'$.Cost')) as Cost
FROM @Expense
Run Code Online (Sandbox Code Playgroud)
退货
ID Status Cost
1 Shipped 10.50
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |