您好在以下select语句中我想为其中一个列选择不同的值b.bId并且不起作用。声明是
select
a.sId
,distinct b.bId
from tlocal a
left outer join ts b on (b.id=a.mainId)
where
a.id=@xId;
我必须在select语句中选择distinct,因为这是在存储过程中返回值。 请告诉我,谢谢
答案 0 :(得分:0)
试试这个
select
a.sId,b.theId
from tlocal a
left outer join (select distinct b.ID as theID from ts) b
on (b.theid=a.mainId)
where a.id=@xId;
答案 1 :(得分:0)
由于a.id
只是一个值,因此您可以对行
select distinct a.sId, b.bId
from tlocal a
left outer join ts b on (CASE WHEN ISNUMERIC(b.id) = 1 THEN convert(int, b.id) ELSE NULL END = a.mainId)
where a.id=@xId;
因为b.ID
是varchar
我正在尝试转换为int
,因为我无法确定哪种对齐b.ID
可能是,例如领先的零或空格,无论如何具有不同类型的FK是不好的政策。
1+到@siride
评论