Sql 如何获取变量的值?

Sql 如何获取变量的值?,sql,sql-server,Sql,Sql Server,我有一行数据 对于我想要获取tkID值的每一行,即查询应该返回我245764,如何在SQL Server中实现这一点?另一个字符串将始终保持不变,只有tkID不同 我已经尝试了SELECT*FROM PERSON WHERE SUBSTRING(1,)…请帮助 Table SAMPLE DATA PERSON ID TEXT 1 <com.innovation.jsp.beans.structTaskCon

我有一行数据

对于我想要获取tkID值的每一行,即查询应该返回我245764,如何在SQL Server中实现这一点?另一个字符串将始终保持不变,只有tkID不同

我已经尝试了
SELECT*FROM PERSON WHERE SUBSTRING(1,)…
请帮助

Table
      SAMPLE DATA
      PERSON

     ID         TEXT
    1            <com.innovation.jsp.beans.structTaskContext
        obj-name="tkDetails" descriptionKey="B.Tk.Undefined"
        tkID="245764" abc="1"....


    2            <com.innovation.jsp.beans.structTaskContext
        obj-name="tkDetails" descriptionKey="B.Tk.Undefined"
        tkID="245765" abc="2".....
谢谢


Aiden

您可以通过组合使用
PATINDEX
CHARINDEX
RIGHT
LEFT
字符串函数来实现这一点

查询

select  left((right(@str, len(@str) -  patindex('%tkID="%', @str) - 5)), 
        charindex('"', 
        (right(@str, len(@str) -  patindex('%tkID="%', @str) - 5)), 1) - 1);
试试这个

declare @text nvarchar(1000)='<com.innovation.jsp.beans.structTaskContext
    obj-name="tkDetails" descriptionKey="B.Tk.Undefined"
    tkID="245765" abc="2".....'
如果tckId的长度为6

select substring(@text, charindex('tkID=', @text)+6,6) 

请从表中发布一些示例数据,您所需的结果已添加示例数据
Number
245764
245765
declare @text nvarchar(1000)='<com.innovation.jsp.beans.structTaskContext
    obj-name="tkDetails" descriptionKey="B.Tk.Undefined"
    tkID="245765" abc="2".....'
select substring(@text, charindex('tkID=', @text)+6,charindex('abc=', @text)-(charindex('tkID=', @text)+8))
select substring(@text, charindex('tkID=', @text)+6,6)