SQL多表查询与表表达式详解
1. 双重否定查询与子查询问题
1.1 双重否定查询
在某些情况下,双重否定查询可以提供更高效的解决方案。例如,要确保一个字符列 sn 只包含数字,可以使用双重否定逻辑。正逻辑是列中的每个字符都是数字,而双重否定形式是列中没有非数字字符。在T - SQL中,对应的谓词为:
sn NOT LIKE '%[^0-9]%'
1.2 子查询问题及解决方法
1.2.1 子查询列名替换错误
考虑以下创建 T1 和 T2 表并插入数据的代码:
IF OBJECT_ID(N'dbo.T1', N'U') IS NOT NULL DROP TABLE dbo.T1;
IF OBJECT_ID(N'dbo.T2', N'U') IS NOT NULL DROP TABLE dbo.T2;
GO
CREATE TABLE dbo.T1(col1 INT NOT NULL);
CREATE TABLE dbo.T2(col2 INT NOT NULL);
INSERT INTO dbo.T1(col1) VALUES(1);
INSERT INTO dbo.T1(col1) VALUES(2);
INSERT INTO dbo.T1(col1) VALUES(3);
INSERT INTO dbo.T2(col2) VALUES(2);
超级会员免费看
订阅专栏 解锁全文
553

被折叠的 条评论
为什么被折叠?



