有没有办法只选择名字不在另一个表上的列?例如
Table A Column B
ID | Name | Address Address
-----------------------
1 | Daniel | dummy
在这个例子中,我的select语句应该是这样的:
select ID, Name from Column A
我看到有人在谈论动态SQL,但我无法找到解决问题的好例子,我们非常感谢任何帮助。
答案 0 :(得分:3)
以下是使用动态SQL执行此操作的方式的一个版本:
var oTable = $('#tblTestResults').DataTable();
oTable.fnGetData().length; // gives no of record in datable
这有点简化,以显示如何起诉declare @cols varchar(max);
set @cols = NULL;
select @cols = coalesce(@cols + ', ' + column_name, column_name)
from information_schema.columns ca
where ca.table_name = 'A' and
ca.column_name not in (select cb.column_name
from information_schema.columns cb
where cb.table_name = 'B'
);
declare @sql varchar(max);
set @sql = 'select [cols] from A';
set @sql = replace(@sql, '[cols]', @cols);
exec sp_executesql @sql;
表。它可以在很多情况下使用,但不是最通用的:
答案 1 :(得分:0)
在WHERE
子句中选择另一个表。
SELECT ID, NAME
FROM ColumnA
WHERE NAME NOT IN (SELECT NAME FROM COLUMNB)