Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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是否基于参数选择一整列?_Sql_Sql Server 2008 - Fatal编程技术网

SQL是否基于参数选择一整列?

SQL是否基于参数选择一整列?,sql,sql-server-2008,Sql,Sql Server 2008,我有这张桌子,需要帮助: 朋友们: 我的电子邮件VARCHAR和 朋友的电子邮件 以下是一些示例值: alester@pam.com carl@pam.com alester@pam.com greg@pam.com alester@pam.com jude@pam.com 我需要做的是选择与我使用的插件参数不匹配的我的电子邮件或朋友电子邮件?在SQLServer2008中使用 例如: select Friend_E_Mail From Friends WHERE Friend_E_Mail

我有这张桌子,需要帮助:

朋友们:

我的电子邮件VARCHAR和 朋友的电子邮件 以下是一些示例值:

alester@pam.com carl@pam.com
alester@pam.com greg@pam.com
alester@pam.com jude@pam.com
我需要做的是选择与我使用的插件参数不匹配的我的电子邮件或朋友电子邮件?在SQLServer2008中使用

例如:

select Friend_E_Mail
From Friends 
WHERE Friend_E_Mail NOT IN (?)
我想做的是显示每个人的朋友列表。例如,阿莱斯特有三个朋友,但其他人只有一个朋友,那就是阿莱斯特

此外,我无法创建另一个表


任何帮助都将不胜感激

下面的查询返回整行,而不仅仅是一个字段。如果基本逻辑与您需要的匹配,可以对其进行修改,以生成具有CASE-WHEN结构的单个列

select *
From Friends 
WHERE My_E_Mail = ? OR Friend_E_Mail = ?

也许你需要一个工会:

declare @email varchar(50)
set @email = ?

SELECT
    Friend_E_Mail as email
FROM    
    Friends 
WHERE 
    My_E_Mail = @email
    and Friend_E_Mail <> @email
UNION
SELECT 
    My_E_Mail as email
FROM 
    Friends 
WHERE 
    Friend_E_Mail = @email
    and My_E_Mail <> @email
这段代码将返回三行alester@pam.com但其他三行中的每一行只有一行


请注意,UNION将只返回不同的行。如果需要保留副本,请使用UNION ALL。此外,如果您提前知道结果是不同的,请使用UNIONALL,以节省distinct带来的性能成本

你能用另一个例子展示一下该表中的更多示例数据吗?通过你给出的例子不清楚你想做什么。我不确定我是否遗漏了什么,这不是你想要的吗?选择My_E_Mail FROM Friends WHERE Friend_E_Mail=?我要做的是为每个人显示一个朋友列表alester有3个朋友,但其他人中每个人只有一个朋友是alester。你的意思是想查找X的所有朋友,而不管X属于My_E_Mail还是Friends_E_Mail?天哪,谢谢!祝福你!我会投票的,但我是新的,再次谢谢你!这就是答案!!!W00t