使用搜索项的可变最后部分提取查询

时间:2016-06-15 17:15:46

标签: sql-server extraction

我的提取查询存在问题。

我想提取所有以一个名字开头的记录。

问题:

  • 并不总是名称的末尾是此扩展名;
  • 当它们存在时,它们没有固定的长度。

示例:

TabNames

id | Name

1 | Mike
2 | Mike Nell-1
3 | Mike-2
4 | Robert-1
5 | Mike Rio-NN
6 | Mike-Orio-2
.....

搜索姓名:'Mike'

期望的结果:

Mike, Mike-2

如果有兴趣,我使用SQL Server。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以使用FOR XML执行此操作。您将在两个select语句中更新Table Names,Columns Names和Where Statement。这是此Concatenation Script的变体。

SELECT DISTINCT
    SUBSTRING(
        (
            SELECT ', '+ T1.Name  AS [text()]
            FROM dbo.TabNames T1
            WHERE T1.Name LIKE 'Mike%'
            ORDER BY T1.Name
            FOR XML PATH ('')
        ), 3, 8000) AS Names
FROM
    dbo.TabNames T2
WHERE
    T2.Name LIKE 'Mike%'