Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我有两列的表,但我想得到四列的结果_Sql_Sql Server 2008 - Fatal编程技术网

Sql 我有两列的表,但我想得到四列的结果

Sql 我有两列的表,但我想得到四列的结果,sql,sql-server-2008,Sql,Sql Server 2008,这是我的密码 CREATE TABLE Students ( id int PRIMARY KEY IDENTITY, name char(25) ) INSERT INTO Students(name) VALUES('Farhat') INSERT INTO Students(name) VALUES('shoaib') INSERT INTO Students(name) VALUES('rameez') INSERT INTO Students(name) VALUES('rafay'

这是我的密码

CREATE TABLE Students
(
id int PRIMARY KEY IDENTITY,
name char(25)
)

INSERT INTO Students(name) VALUES('Farhat')
INSERT INTO Students(name) VALUES('shoaib')
INSERT INTO Students(name) VALUES('rameez')
INSERT INTO Students(name) VALUES('rafay')
INSERT INTO Students(name) VALUES('ata')
INSERT INTO Students(name) VALUES('fakhar')


SELECT
CASE WHEN s.id%2=1 THEN s.id 
END AS Student_id,
CASE WHEN s.id%2=1 THEN  s.NAME END AS student_name,
CASE WHEN s.id%2=0 THEN s.id 
END AS Student_Id,
CASE WHEN s.id%2=0 THEN s.NAME END AS Student_Name
FROM students s
结果是

1       Farhat     NULL     NULL  
NULL    NULL       2        shoaib  
3       rameez     NULL     NULL  
NULL    NULL       4        rafay                      
5       ata        NULL     NULL  
NULL    NULL       6        fakhar  
但是我想要这样的结果

1 Farhat     2  shoaib  
3 rameez     4  rafay  
5 ata        6  rakhar  

意味着我在这个表中有两列,我想在四列中得到结果,好吧,因为我觉得这会很有趣,我尝试了一些东西,但我建议不要使用这个

SELECT s1.id, s1.name, s2.id, s2.name
FROM students s1, students s2
WHERE (s2.id - s1.id = 1 
AND s1.id %2 == 1);
有一些注意事项,1如果学生人数为奇数,最后一名学生将不会被打印。(它根本无法处理这个问题,我想不出任何解决办法。)

但在我看来,你应该这样做:

 data = DB.query("SELECT s.id, s.name FROM Students s");
 for (i=0; i < length(data); i++)
     for (j=0; j<2; j++)
         print data[i+j].id, data[i+j].name;
     endfor
     print "\n";
 endfor
data=DB.query(“从学生s中选择s.id、s.name”);
对于(i=0;i<长度(数据);i++)

对于(j=0;jJust why!?!SQL不用于对列中的数据进行格式化。您应该将表示形式排除在SQL查询之外,而只需使用您正在使用的任何编程语言即可。
SELECT std1.id AS Student_Id, 
        std1.NAME AS Student_Name, 
        std2.id AS Student_Id, 
        std2.NAME AS Student_Name
FROM students std1, students std2
WHERE (std2.id - std1.id = 1
       AND std1.id %2 = 1);