解决了我的问题......看到第二部分代码
这是我的sql语句,用于比较来自不同表的2行序列号。如果有匹配则显示yes,但如果没有匹配则显示no 在不同的表格中,由于两种不同的原因,这样做了两次
SELECT table1.serial1, table1.serial2,
CASE WHEN table2.serial1 IS NULL THEN 'No' ELSE 'Yes' END AS [computedCol1],
CASE WHEN table3.serial2 IS NULL THEN 'No' ELSE 'Yes' END AS [computedCol2]
FROM table1
LEFT JOIN table2
ON table2.serial1 = table1.serial1
LEFT JOIN dbo.EPG
ON table3.serial2 = table1.serial2
我想要做的是创建另一个列,如果第一列或第二列为是,则在行中放置yes,否则它将显示no。我意识到你不能压缩计算列,所以我想要做的是重复表达式并有一个或没有运气的声明。我不是很有经验写任何其他基本的sql ...这是mty尝试:
SELECT DISTINCT table1.serial1, table1.serial2,
CASE WHEN table2.serial1 IS NULL THEN 'No' ELSE 'Yes' END AS [computedCol1],
CASE WHEN table3.serial2 IS NULL THEN 'No' ELSE 'Yes' END AS [computedCol2],
CASE WHEN table3.serial2 IS NULL OR table2.serial1 IS NULL THEN 'No' ELSE 'Yes' END AS [computedCol2]
FROM table1
LEFT JOIN table2
ON table2.serial1 = table1.serial1
LEFT JOIN dbo.EPG
table3.serial2 = table1.serial2
答案 0 :(得分:0)
table3.serial2 OR table2.serial1 IS NULL
不是您正在寻找的条件。您需要table3.serial2 IS NULL OR table2.serial1 IS NULL
。[computedCol2]
返回两个不同的值。