填充值看起来像相似的连接值
Filling value to look like similar concatenated value
下面的问题不知道怎么办
我有一个列,其中可以是 'T-00513153' 之类的值,但有时该值会与更多值(例如 'T-00513153, T-00513154' 连接在一起,而我想要完成的是如果值是 'T-00513153'或 'T-00513154' 并且在另一行中,此值是像 'T-00513153, T-00513100' 这样的连接值,然后对于每个未连接的值使用该连接值,为了更好地理解我正在发布示例
也许有一些子选择将查看元素值是否在同一列中的任何值内(foreaching all table),如果是,则使用最长的字符串,但我觉得这种方法可能有性能问题,任何的想法 ?
谢谢
是的,我认为你可以完成你想要的。以下查询查找与任何给定元素匹配的最长元素:
select s.number, longest.element, s.val1, s.val2
from source s cross apply
(select top 1 s2.element
from source s2
where s2.element like s.element + '%'
order by len(s2.element) desc
) longest;
您也可以使用相关子查询来执行此操作。
注意:将事物列表存储在分隔字段中是个坏主意。您应该有一个单独的交汇点 table,每个数字和每个元素一行。它将使这种操作更有效率。
下面的问题不知道怎么办
我有一个列,其中可以是 'T-00513153' 之类的值,但有时该值会与更多值(例如 'T-00513153, T-00513154' 连接在一起,而我想要完成的是如果值是 'T-00513153'或 'T-00513154' 并且在另一行中,此值是像 'T-00513153, T-00513100' 这样的连接值,然后对于每个未连接的值使用该连接值,为了更好地理解我正在发布示例
也许有一些子选择将查看元素值是否在同一列中的任何值内(foreaching all table),如果是,则使用最长的字符串,但我觉得这种方法可能有性能问题,任何的想法 ?
谢谢
是的,我认为你可以完成你想要的。以下查询查找与任何给定元素匹配的最长元素:
select s.number, longest.element, s.val1, s.val2
from source s cross apply
(select top 1 s2.element
from source s2
where s2.element like s.element + '%'
order by len(s2.element) desc
) longest;
您也可以使用相关子查询来执行此操作。
注意:将事物列表存储在分隔字段中是个坏主意。您应该有一个单独的交汇点 table,每个数字和每个元素一行。它将使这种操作更有效率。