我有两个表,其中只有一列是相同的。我试图编写一个存储过程,它从传入的列名称中提取值,但只存在于其中一个表中。这就是我写:来自两个表之一的SQL数据
IF EXISTS(
SELECT identifier FROM TableA WHERE identifier='12345')
SELECT ColumnWhichOnlyExistsInA FROM TableA WHERE identifier='12345'
ELSE
SELECT ColumnWhichOnlyExistsInA FROM TableB WHERE identifier='12345'
这使我在最后一行的“无效的列名称错误,即使IF语句是真实的,它应该只从表A拉东西。我注意到,如果我用做同样事情的存储过程替换底部的两条SELECT语句,它会起作用; SQL不会尝试执行IF为false的那个。
我想将所有内容保存在一个存储过程中。最好的做法是什么?
该解决方案看起来很有希望。我会尝试并回来。 – Alec 2011-06-17 14:05:51