据我了解,您已使用如下查询将 JSON 数据存储到表中
declare @json nvarchar(max) = '"Customer_details":{"name":{"fullName":"Dhruv Joshi"}}'
INSERT INTO j_customer
SELECT *
FROM OPENJSON(@json)
WITH (---some columns
fullName nvarchar(max) '$.Customer_details.name.fullName'
)
在这种情况下,您可以简单地查询您的表,如下所示
select c.fullName
from j_customer c
where c.fullName like '%Gopi%';
在 SQL 中,完全限定的 SQL 列名通常是 like [DatabaseName].[schema].[tablename].[columnname]
,因此在 WHERE 子句中,SQL 将其解释c.customer_details.name.fullName
为c.customer_details
列,就像c
表别名一样。然后name.fullname
看起来像对生成错误的列名的方法调用。