Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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/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 server 如何将联接用作选择列_Sql Server_Sql Server 2008_Tsql - Fatal编程技术网

Sql server 如何将联接用作选择列

Sql server 如何将联接用作选择列,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,我有以下疑问: SELECT X.ID, X.NAME, CASE R.ID WHEN NOT NULL THEN 1 ELSE 0 END ISRELATED FROM TABLE X INNER JOIN RELATIVE R ON R.NAMEID = X.ID 我试图得到类似于此结构的结果,而不是从表X中提取任何重复的行: ID NAME ISRELATED (boolean) 有什么建议吗?谢谢。试试这个 SELECT DISTINCT X.ID, X.NAME, CASE WHE

我有以下疑问:

SELECT X.ID, X.NAME, CASE R.ID WHEN NOT NULL THEN 1 ELSE 0 END ISRELATED
FROM TABLE X
INNER JOIN RELATIVE R ON R.NAMEID = X.ID
我试图得到类似于此结构的结果,而不是从表X中提取任何重复的行:

ID
NAME
ISRELATED (boolean)
有什么建议吗?谢谢。

试试这个

SELECT DISTINCT X.ID, X.NAME, CASE WHEN R.ID IS NOT NULL THEN 1 ELSE 0 END ISRELATED 
FROM TABLE X 
INNER JOIN RELATIVE R ON R.NAMEID = X.ID 

使用内部联接将仅返回X中在R中具有相应行的行。请改用左外部联接

SELECT DISTINCT X.ID, X.NAME, CASE WHEN R.ID IS NOT NULL THEN 1 ELSE 0 END ISRELATED 
FROM TABLE X 
LEFT OUTER JOIN RELATIVE R ON R.NAMEID = X.ID 

我认为您在
案例中有一个错误
,必须使用
左连接

SELECT DISTINCT
    X.ID, 
    X.NAME, 
    CASE WHEN R.ID IS NOT NULL THEN 1 ELSE 0 END ISRELATED 
FROM TABLE X 
LEFT JOIN RELATIVE R ON R.NAMEID = X.ID 

我修改了本例中的case语句,以更好地说明这一需要,但当前返回的相关列的值都相同的重复项,如all one或zero必须将
DISTINCT
添加到语句中。我不知道如何对此执行case语句,以及使用哪种类型的联接。WHEN NOT NULL不起作用。它返回ISRELATED的所有1,而不显示0。也许您需要解释您的确切期望,但我的猜测是,由于您正在使用
internal
join,它将只返回
RELATIVE
表中具有现有记录的1,可能需要尝试
LEFT-OUTER
join