首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一条Oracle话语,报错了,求大侠们改下。

2013-03-26 
一条Oracle语句,报错了,求大侠们改下。。。SELECT S.NO 学号,CASEWHEN S.ID 1210527501 THEN(SELECT DATE

一条Oracle语句,报错了,求大侠们改下。。。
SELECT S.NO 学号,
        CASE 
          WHEN S.ID = '1210527501' THEN
           (SELECT DATE
              FROM STU
             WHERE ID = '1210527501') AS 时间1,
          WHEN S.ID = '1210527502' THEN
            (SELECT DATE
               FROM STU
              WHERE ID = '1210527502') AS 时间2,
          WHEN S.ID = '1210527503' THEN
            (SELECT DATE
               FROM STU
              WHERE ID = '1210527503') AS 时间3,
          ELSE
        END
   FROM STU S
  WHERE S.NO LIKE '1240156742010%'; 


报红色部分缺失关键字。。。
 
[解决办法]
語法錯誤了吧一条Oracle话语,报错了,求大侠们改下。

你想表達的是這樣吧:

SELECT S.NO 学号,
            (SELECT TOP 1 DATE
               FROM STU
              WHERE ID = S.ID AND S.ID = '1210527501') AS 时间1,
            (SELECT TOP 1 DATE
               FROM STU
              WHERE ID = S.ID AND S.ID = '1210527502') AS 时间2,
            (SELECT TOP 1 DATE
               FROM STU
              WHERE ID = S.ID AND S.ID = '1210527503') AS 时间3
   FROM STU S
  WHERE S.NO LIKE '1240156742010%';
 

又或者:
SELECT S.NO 学号,
        CASE 
          WHEN S.ID = '1210527501' THEN
           (SELECT TOP 1 DATE
              FROM STU
             WHERE ID = '1210527501')
          WHEN S.ID = '1210527502' THEN


            (SELECT TOP 1 DATE
               FROM STU
              WHERE ID = '1210527502')
          WHEN S.ID = '1210527503' THEN
            (SELECT TOP 1 DATE
               FROM STU
              WHERE ID = '1210527503') AS 时间
          ELSE
        END
   FROM STU S
  WHERE S.NO LIKE '1240156742010%';

 
[解决办法]
引用:
引用:語法錯誤了吧

你想表達的是這樣吧:
SQL code?123456789101112SELECT S.NO 学号,            (SELECT TOP 1 DATE               FROM STU              WHERE ID = S.ID AND S.ID = '1210527501'……


--case when ... else ... end 是一个整体,在最外层才加别名
SELECT S.NO 学号,
        (CASE 
          WHEN S.ID = '1210527501' THEN
           (SELECT DATE
              FROM STU
             WHERE ID = '1210527501')
          WHEN S.ID = '1210527502' THEN
            (SELECT DATE
               FROM STU
              WHERE ID = '1210527502')
          WHEN S.ID = '1210527503' THEN
            (SELECT DATE
               FROM STU
              WHERE ID = '1210527503')
          ELSE
        END) as 时间
   FROM STU S
  WHERE S.NO LIKE '1240156742010%'; 

热点排行
Bad Request.