复杂的MSSQL查询

时间:2015-07-03 17:23:42

标签: sql sql-server

我需要帮助解决这个问题......

编写一个查询,它将以下面提到的格式显示学生ID和标准。

如果标准是' V'显示'第五标准',如果标准是' IV'显示'第四标准',如果标准是' III'显示'第三标准',如果标准是' II'显示'第二标准',如果标准是'我'显示'第一标准'在列名称' STDINWORDS'并根据标准按降序排序。

提示:查询应显示查询中提到的确切字符串,例如' FIFTH STANDARD'等,并在问题陈述中使用。 示例: S-125第一标准

提示:' S-125'是StudentID列的值。

2 个答案:

答案 0 :(得分:1)

您需要查看CASE语句。由于您没有提供任何样本数据,因此根据我的理解,这是一个解决方案:

create table student (student_id varchar(255), standard varchar(255));

insert into student values
('S-125','I'),
('S-126','II'),
('S-127','III'),
('S-128','IV'),
('S-129','V');

SELECT student_id
    ,standard
    ,CASE standard
        WHEN 'I'
            THEN 'FIRST STANDARD'
        WHEN 'II'
            THEN 'SECOND STANDARD'
        WHEN 'III'
            THEN 'THIRD STANDARD'
        WHEN 'IV'
            THEN 'FOURTH STANDARD'
        WHEN 'V'
            THEN 'FIFTH STANDARD'
        END AS StdInWords
    ,CASE standard
        WHEN 'I'
            THEN 1
        WHEN 'II'
            THEN 2
        WHEN 'III'
            THEN 3
        WHEN 'IV'
            THEN 4
        WHEN 'V'
            THEN 5
        END AS SortBy_Field
FROM student
ORDER BY SortBy_Field DESC;

SQL Fiddle Demo

答案 1 :(得分:0)