我尝试编写一个sql查询来从“键值”字段中获取一些信息。
A<1,?,'wfinitiation'=A<1,?,'DocID'=56581,'DocVersion'=0>>
SQLfunction是否可以只选择DocID?
我可以使用哪种功能?
THX
答案 0 :(得分:1)
如果需要查询此列中包含的各个值,则应考虑提取信息并以关系格式存储。目前您违反了第1范式。
也就是说,您可以使用substring
和charindex
。
DECLARE @key VARCHAR(20)
SET @key='DocID';
DECLARE @Search VARCHAR(30)
SET @Search='''' + @key + '''=';
WITH your_table(col)
AS (SELECT 'A<1,?,''wfinitiation''=A<1,?,''DocID''=56581,''DocVersion''=0>>')
SELECT Substring(col, Charindex(@Search, col) + Len(@Search),
Charindex(',',
REPLACE(col, '>', ','), Charindex(@Search, col)) - (
Charindex(@Search, col) + Len(@Search) )) AS value
FROM your_table