为什么会出现这个问题啊?该怎么改啊?
为啥正文非得写三十个字符
凑字数小故事:
“你知道月亮叫什么吗?”
“月亮。”
“你知道太阳叫什么吗?”
“太阳。”
“那你知道星星叫什么吗?”
“…星星。”
“那你知道你自己叫什么吗?”
狐狸抬起爪子戳了戳乌鸦的头,顺带揪下几根毛来,恶声恶气:“我不就是骗了你一块肉么,你至于这么纠缠我吗?”
乌鸦不好意思地收起张扬的翅膀怯生生道:“可是猴子说你一直喜欢我哎,它说你今天早上在我的篮子里放了两块新鲜肉……”
狐狸眯着眼睛默不作声,半响悠悠问道:“你问我太阳月亮星星到底想说什么?”
乌鸦咧着嘴笑了笑,“那你知道我叫什么嘛?一听说你喜欢我,就高兴地忘了自己叫什么了。”
(select DISTINCT 姓名 from Student where 学号 = @id) != @name
or (select DISTINCT 学号 from Student where 姓名 = @name) !=@id
试试
- 第一步,导入数据库: 方式,两种:
- 第一种 指定导入:
source xxx/test.sql
导入sql文件,sql文件实际上是一个脚本文件,里面有多行SQL语句,通过source命令可以批量执行。 (命令导入)sql 文件代码:
comm SMALLINT ) ; CREATE TABLE IF NOT EXISTS salgrade ( grade INT, losal INT, hisal INT ); -- 插入测试数据 —— dept INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK'); INSERT INTO dept VALUES (20,'RESEARCH','DALLAS'); INSERT INTO dept VALUES (30,'SALES','CHICAGO'); INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON'); -- 插入测试数据 —— emp INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20); INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,'1981-2-20',1600,300,30); INSERT INTO emp VALUES (7521,'WARD','SALESMAN',7698,'1981-2-22',1250,500,30); INSERT INTO emp VALUES (7566,'JONES','MANAGER',7839,'1981-4-2',2975,NULL,20); INSERT INTO emp VALUES (7654,'MARTIN','SALESMAN',7698,'1981-9-28',1250,1400,30); INSERT INTO emp VALUES (7698,'BLAKE','MANAGER',7839,'1981-5-1',2850,NULL,30); INSERT INTO emp VALUES (7782,'CLARK','MANAGER',7839,'1981-6-9',2450,NULL,10); INSERT INTO emp VALUES (7788,'SCOTT','ANALYST',7566,'1987-04-19',3000,NULL,20); INSERT INTO emp VALUES (7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10); INSERT INTO emp VALUES (7844,'TURNER','SALESMAN',7698,'1981-9-8',1500,0,30); INSERT INTO emp VALUES (7876,'ADAMS','CLERK',7788,'1987-05-23',1100,NULL,20); INSERT INTO emp VALUES (7900,'JAMES','CLERK',7698,'1981-12-3',950,NULL,30); INSERT INTO emp VALUES (7902,'FORD','ANALYST',7566,'1981-12-3',3000,NULL,20); INSERT INTO emp VALUES (7934,'MILLER','CLERK',7782,'1982-1-23',1300,NULL,10); -- 插入测试数据 —— salgrade INSERT INTO salgrade VALUES (1,700,1200); INSERT INTO salgrade VALUES (2,1201,1400); INSERT INTO salgrade VALUES (3,1401,2000); INSERT INTO salgrade VALUES (4,2001,3000); INSERT INTO salgrade VALUES (5,3001,9999);
新建一个文件命名为test.sql 将上述拷贝进去,导入执行上述语句创建数据库即可
根据提供的信息,问题是在使用SQL Server查询时出现了“子查询返回值不止一个”的提示,需要修改这个问题。这可能是由于在查询语句中,子查询返回了多行数据,导致了这个错误。以下提供两种可能的解决方案:
解决方案一:重新设计子查询,在确保返回单个数据行的情况下,修改查询语句。
解决方案二:将子查询转换为联接查询,使用JOIN子句代替子查询。具体步骤如下:
Step 1: 创建两个表,一个是主表,一个是从表。例如,创建名为“Orders”的主表和名为“Customers”的从表,让“Orders”表有一个CustomerId的外键,指向“Customers”表的主键,以建立两个表之间的联系。
Step 2: 使用联接查询,将这两个表连接起来。在这种情况下,使用INNER JOIN子句是最好的选择,因为每个订单都必须有对应的客户。
例如,下面的查询将返回每个订单的OrderId,OrderDate,CustomerName和CustomerEmail:
SELECT Orders.OrderId, Orders.OrderDate, Customers.CustomerName, Customers.CustomerEmail FROM Orders INNER JOIN Customers ON Orders.CustomerId = Customers.CustomerId;
解释:该查询使用INNER JOIN将“Orders”表与“Customers”表连接。连接使用“ON”子句指定,里面是一个条件,用于匹配“Orders”表中的“CustomerId”列与“Customers”表中的“CustomerId”列。并且查询只返回“Orders”表中的“OrderId”和“OrderDate”列,以及“Customers”表中的“CustomerName”和“CustomerEmail”列。
注意:如果您的查询涉及多个表,那么您需要编写复杂的联接查询语句,以确保返回正确的数据。需要检查外键和主键之间的关系,并且确保为联接查询中的每个表指定正确的别名(如果需要)。
希望这些信息对您有所帮助,如果需要更多帮助,请提供更具体的信息。