USE jxsk SELECT s1.SN AS 姓名,s1.DEPT AS 系别 FROM S s1, S s2 WHERE s1.SN=s2.SN AND S1.SNO<>s2.SNO ORDER BY s1.DEPT,s1.SN COMPUTE COUNT(s1.SN) BY s1.DEPT COMPUTE COUNT(s1.SN) GO把这其中的compute语句换成高版本sql server适用的语句
时间: 2023-11-15 12:05:08 浏览: 95
在高版本SQL Server中,可以使用以下语句替换原始语句中的COMPUTE语句:
```
USE jxsk
SELECT s1.SN AS 姓名, s1.DEPT AS 系别, COUNT(s1.SN) OVER(PARTITION BY s1.DEPT) AS 'COUNT(s1.SN) BY s1.DEPT', COUNT(s1.SN) OVER() AS 'COUNT(s1.SN)'
FROM S s1, S s2
WHERE s1.SN=s2.SN AND s1.SNO<>s2.SNO
ORDER BY s1.DEPT, s1.SN
```
这个新的SQL语句中,使用了OVER子句来替代了原来的COMPUTE语句。通过在OVER子句中使用PARTITION BY子句,我们可以得到每个部门中SN的数量。同时,使用COUNT(s1.SN) OVER()可以得到整个结果集中SN的数量。
相关问题
USE jxsk SELECT prof , TN AS 姓名,SEX , AGE , SAL + COMM AS 工资 FROM T ORDER BY PROF COMPUTE MAX ( SAL + COMM ) BY PROF COMPUTE MIN ( SAL + COMM ) BY PROF COMPUTE AVG ( SAL + COMM ) BY PROF GO把这其中的compute语句换成高版本sql server适用的语句
在高版本SQL Server中,可以使用以下语句替换原始语句中的COMPUTE语句:
```
USE jxsk
SELECT prof, TN AS 姓名, SEX, AGE, SAL + COMM AS 工资,
MAX(SAL + COMM) OVER(PARTITION BY prof) AS 'MAX ( SAL + COMM ) BY PROF',
MIN(SAL + COMM) OVER(PARTITION BY prof) AS 'MIN ( SAL + COMM ) BY PROF',
AVG(SAL + COMM) OVER(PARTITION BY prof) AS 'AVG ( SAL + COMM ) BY PROF'
FROM T
ORDER BY prof
```
这个新的SQL语句中,使用了OVER子句来替代了原来的COMPUTE语句。通过在OVER子句中使用PARTITION BY子句,我们可以计算每个职业中SAL+COMM的最大值、最小值和平均值。同时,我们仍然可以按照职业对结果进行排序。
基于教学数据库jxsk完成下面的问题:对学生选课表SC,先按课号CNO升序排列,再按成绩SCORE降序排列。
可以使用如下的SQL语句实现:
```
SELECT * FROM SC ORDER BY CNO ASC, SCORE DESC;
```
其中,`ORDER BY`关键字用于指定排序方式。在这里,我们先按照`CNO`升序排列,再按照`SCORE`降序排列。`ASC`表示升序,`DESC`表示降序。最终结果将返回整个选课表SC,按照所述方式排序后的结果。
阅读全文