Sql 基于相同Id导出不同的名称
我有一个表myTable,其中包含列名称、Id和代码 myTable中的示例数据如下所示Sql 基于相同Id导出不同的名称,sql,sql-server,Sql,Sql Server,我有一个表myTable,其中包含列名称、Id和代码 myTable中的示例数据如下所示 ------------------------- | name | Id | code | ------------------------- | XYZ | A12 | F1 | | ABC | B89 | F2 | | WWW | A12 | G1 | | GGT | C87 | G2 | | NTA | N33 | H1
-------------------------
| name | Id | code |
-------------------------
| XYZ | A12 | F1 |
| ABC | B89 | F2 |
| WWW | A12 | G1 |
| GGT | C87 | G2 |
| NTA | N33 | H1 |
-------------------------
预期结果是
-------------------------
| name | Id | code |
-------------------------
| XYZ | A12 | F1 |
| WWW | A12 | G1 |
-------------------------
有关更多详细信息,请查看下面的图片
虽然您的问题不清楚,但一个简单的WHERE子句和DISTINCT关键字可以解决您的问题
WITH uniqueNames AS (
SELECT DISTINCT name
FROM myTable
WHERE id = 'A12'
)
SELECT t1.name, t1.id, t1.code
FROM myTable t1
INNER JOIN uniqueNames ON uniqueNames.name = t1.names
你为什么不直接用这个
select name, id, code
from t
where id = 'A12';
你的问题是什么;到目前为止您尝试了什么?请花一些时间实际详细解释问题,并向我们展示您自己尝试了什么,因为它不是代码编写服务。你要求一群人免费抽出时间来帮助你,所以你至少可以让他们尽可能地帮助你。为什么要以文本和图像的形式发布相同的数据?感谢您的回复,我们有上千条记录,我只想看到那些名称不同的匹配ID记录。希望这是更好的解释。例如,匹配的记录是ID=A12,distinct name=xyz和www.@Mike我编辑了我的解决方案,也许这会解决您的问题。不,当您定义ID='A12'时,它肯定会为小表带来正确的结果,如我在示例中所示,但我们不知道ID号,因为它有成千上万条记录。不过,我要感谢你的帮助和时间。你必须通过你的身份证!!创建一个带有参数id的存储过程。在调用该过程时,传递您的id。它的工作原理类似于函数调用。结果非常接近。谢谢你的帮助