我有一组使用完全连接的选择查询(必需),并希望用其他东西替换结果空值(在下面的例子中,它应该是"空")。 对于第一列(以及所有其他人,老实说)我尝试过使用isnull(),coallesce(),case when甚至try_convert,但结果始终为null。我可以使用null,因为在这种特殊情况下意味着第一个查询的结果不存在第二个查询,这是我的目标。 有以下相同的查询,也是完全连接,因此第一个查询中的一行可能不在第二个查询中,但可能在第四个查询的第三个中。
这是select语句
SELECT *
FROM (SELECT Isnull(1, 'empty') AS SubGroup
, table2.lineintid AS OrderByThis2nd
, table2.HeaderStamp AS HeaderLink
, table2.linestamp AS LineID
, table2.lprocessname AS LineProcName
, table2.lprocessno AS LineProcNumber
, table2.productid AS ProdId
, table2.prodamount AS QTT
, table2.prodval AS UnitPrice
FROM table2 (nolock)
INNER JOIN table1 ON table2.headerstamp = table1.headerstamp
WHERE table1.lprocessname = 'Phase 1')Proc1L
FULL JOIN (SELECT Isnull(2, 'empty') AS SubGroup
, table2.lineintid AS OrderByThis2nd
, table2.linestamp AS LineID
, table2.prevlstamp AS PrecedingLine
, table2.lprocessname AS LineProcName
, table2.lprocessno AS LineProcNumber
, table2.productid AS ProdId
, table2.prodamount AS QTT
, table2.prodval AS UnitPrice
FROM table2 (nolock)
INNER JOIN table1 ON table2.headerstamp = table1.headerstamp
WHERE table1.lprocessname = 'Phase 2'
AND Year(table2.linedate) = '2018')Proc2L ON Proc1L.LineID = Proc2L.PrecedingLine
ORDER BY 1 DESC
, 2
此数据库位于MS SQL 2014中。 任何想法都表示赞赏。非常感谢你!
答案 0 :(得分:0)
尝试在外部查询中使用ISNULL函数。而不是
select * from
使用
Select isnull(col1, 'x'), etc
from