Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有重复值的SQL Server查询_Sql_Sql Server - Fatal编程技术网

具有重复值的SQL Server查询

具有重复值的SQL Server查询,sql,sql-server,Sql,Sql Server,我有一个查找表a和一个存储实际值的表B。我面临的问题是表B可以存储多个值,这些值以逗号分隔 因此,如果表A有例如2列: Code Value ------------ 1 Dog 2 Cat 3 Bird 4 Bear …表B可以有如下内容: Record # Code -------------------- 1 2 2 3,4 3 1,4 4 3 5

我有一个查找表a和一个存储实际值的表B。我面临的问题是表B可以存储多个值,这些值以逗号分隔

因此,如果表A有例如2列:

Code   Value
------------
1      Dog
2      Cat
3      Bird
4      Bear
…表B可以有如下内容:

Record #     Code
--------------------
1            2
2            3,4
3            1,4
4            3
5            1,2,3,4
Record #         Code         Value
-------------------------------------
1                2            Cat
2                3            Bird
2                4            Bear
3                1            Dog
3                4            Bear
4                3            Bird
5                1            Dog
5                2            Cat
5                3            Bird
5                4            Bear
当我循环表B时,我希望我的输出如下所示:

Record #     Code
--------------------
1            2
2            3,4
3            1,4
4            3
5            1,2,3,4
Record #         Code         Value
-------------------------------------
1                2            Cat
2                3            Bird
2                4            Bear
3                1            Dog
3                4            Bear
4                3            Bird
5                1            Dog
5                2            Cat
5                3            Bird
5                4            Bear
换句话说,我希望表B中的记录返回的逗号分隔值是表a中逗号分隔值的两倍

实现这一目标的最佳和最有效的方法是什么

蒂亚,
-TS.

如果您没有或想要一个拆分/解析函数,这里有一个内嵌的方法

范例

返回


您需要包含DBMS类型和列类型的标记。是否有机会重构或规范化您的表设计?Hi@BShaps the TableA.Code=integer and TableB.Code=varcharHi@Philip,很遗憾,我现在无法规范化该表。什么是DBMS?MySql、Postgres等。