【问题标题】:SELECT row if concatenated value contains text如果连接的值包含文本,则选择行
【发布时间】:2016-01-12 16:05:20
【问题描述】:
select dbo.strconcat(r.Name) as Names, r.Category
from Reference r
group by r.Category

对于这个查询,我需要获取至少有一个名称 (r.Name) LIKE 任何文本的类别。

示例:条件 (LIKE '%123%')

123,2,4 - 正确的名称

【问题讨论】:

    标签: sql-server tsql select where


    【解决方案1】:

    这是你要找的吗:

    ;WITH A
         AS
            (SELECT dbo.strconcat
                    (r.Name
                    ) AS Names, r.Category
             FROM Reference r
             GROUP BY r.Category
            )
         SELECT *
         FROM A
         WHERE Names LIKE '%123%';
    

    【讨论】:

    • 是的。我这样做了,但也许没有更好的解决方案??
    • SELECT dbo.strconcat(r.Name) AS Names, r.Category FROM Reference r WHERE dbo.strconcat(r.Name) LIKE '%123%' GROUP BY r.Category 怎么样跨度>
    • 不确定函数 dbo.strconcat() 是做什么的,但我猜从它的名称来看,它将字符串与列名称连接起来。
    • 另一种选择是使用临时表。
    • 是的,dbo.strconcat() 将字符串与列名称连接起来。但这不是完全正确的解决方案,因为我在名称之间插入了“,”。而且 LIKE '%,%' 不会给我正确的结果。
    猜你喜欢
    • 2023-01-09
    • 2013-01-29
    • 2014-01-02
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多