以下查询返回如下所示的结果:
SELECT
ProjectID, newID.value
FROM
[dbo].[Data] WITH(NOLOCK)
CROSS APPLY
STRING_SPLIT([bID],';') AS newID
WHERE
newID.value IN ('O95833', 'Q96NY7-2')
结果:
ProjectID value
---------------------
2 Q96NY7-2
2 O95833
2 O95833
2 Q96NY7-2
2 O95833
2 Q96NY7-2
4 Q96NY7-2
4 Q96NY7-2
使用STRING_AGG
以下查询中显示的新添加的功能(在SQL Server 2017中),我可以获取以下结果集。
SELECT
ProjectID,
STRING_AGG( newID.value, ',') WITHIN GROUP (ORDER BY newID.value) AS
NewField
FROM
[dbo].[Data] WITH(NOLOCK)
CROSS APPLY
STRING_SPLIT([bID],';') AS newID
WHERE
newID.value IN ('O95833', 'Q96NY7-2')
GROUP BY
ProjectID
ORDER BY
ProjectID
结果:
ProjectID NewField
-------------------------------------------------------------
2 O95833,O95833,O95833,Q96NY7-2,Q96NY7-2,Q96NY7-2
4 Q96NY7-2,Q96NY7-2
我希望我的最终输出仅具有以下独特元素:
ProjectID NewField
-------------------------------
2 O95833, Q96NY7-2
4 Q96NY7-2
关于如何获得此结果的任何建议?如果需要,请随时从头开始进行优化/重新设计。
DISTINCT
在合并结果之前,请在子查询中使用关键字删除重复项:SQL
Fiddle
SELECT
ProjectID
,STRING_AGG(value, ',') WITHIN GROUP (ORDER BY value) AS
NewField
from (
select distinct ProjectId, newId.value
FROM [dbo].[Data] WITH(NOLOCK)
CROSS APPLY STRING_SPLIT([bID],';') AS newID
WHERE newID.value IN ( 'O95833' , 'Q96NY7-2' )
) x
GROUP BY ProjectID
ORDER BY ProjectID
问题内容: 我正在寻找一种在Java应用程序中获取唯一文件ID的方法,并且遇到了这种情况: Windows中的唯一文件标识符 现在,我尝试了Ashley Henderson本人(提出问题的人)提供的答案,并且在C#中效果很好。但是我需要在Java中执行此操作,以使该应用程序可以跨平台工作。 有什么方法可以将此移植到Java或以其他方式获取相同的ID? 编辑: 我现在几乎可以使用eee的解决方案来使
问题内容: 我在一个基于Java的系统中工作,我需要为视觉显示中的某些元素设置一个ID。一类元素是字符串,因此我决定使用String.hashCode()方法来获取这些元素的唯一标识符。 但是,我遇到的问题是,如果id为负,并且经常返回负值,那么我正在borks中工作的系统。一种快速的解决方案是仅在哈希码调用周围使用Math.abs()来确保得到肯定的结果。我想知道这种方法是,两个不同的元素具有相
问题内容: 如何获得数组中唯一值的列表?我是否总是必须使用第二个数组,或者是否有类似于JavaScript中Java哈希表的东西? 我将仅使用 JavaScript 和 jQuery 。不能使用其他库。 问题答案: 由于我在@Rocket答案的注释中继续进行了讨论,因此我不妨提供一个不使用任何库的示例。这需要两个新的原型函数,并且 为了提高可靠性,可以用MDN的垫片代替,并检查每个元素的值是否等于
问题内容: 我想从以下列表中获取唯一值: 我需要的输出是: 此代码有效: 我应该使用更好的解决方案吗? 问题答案: 首先正确声明你的列表,以逗号分隔。你可以通过将列表转换为一组来获得唯一值。 如果进一步将其用作列表,则应执行以下操作将其转换回列表: 另一种可能(可能更快)的可能性是从头开始使用集合而不是列表。然后你的代码应为: 正如已经指出的那样,集合不保持原始顺序。如果需要,则应查找有序集合实现
问题内容: 我想创建一个(或一组)所有出现在python列表中的唯一值的列表。我有这样的事情: 我想要以下内容: 我知道对于字符串列表,您只能使用set(aList),但是我无法弄清楚如何在列表列表中解决此问题,因为set(aList)会向我显示错误消息 我该如何解决? 问题答案:
我想获得跨多个数字id列的唯一数字id值列表。我的目标是帮助总结用户更改多个表时数据库中的更改流,在我的示例中,从表a到B,然后返回到a。 我知道我可以通过附加每个列的列表来实现这一点,但我想利用数据。表内部,以尽可能提高效率。 需要:矢量或数据。具有唯一值的表格,例如c(1,2,3,4)