Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
ВнизЗапрос в MSSQL Найти похожие ветки
← →
DA (2004-08-23 17:59) [0]
sql_string:="select ltb_sessions.sid,ltb_loadparams.name,"+
"if((ltb_loadparams.RowsCnt>ltb_loadparams.WORKACTS) or "+
"(ltb_loadparams.RowsLinkCnt>ltb_loadparams.WORKLINKS),"+
"""Не завершена"",""Завершена"") as LoadState, ltb_sessions.starttime, "+
"ltb_sessions.fintime, ltb_users.displayname,ltb_sessions.userid "+
" from ltb_sessions, ltb_loadparams,ltb_users "+
" where ltb_sessions.sid=ltb_loadparams.sid and ltb_sessions.userid=ltb_users.userid and ltb_sessions.stype=1 ORDER BY Sid DESC";
В MySql такой запрос отрабатывает нормально, в MSSQL валится, подскажите, где ошибка
← →
MOA © (2004-08-23 18:20) [1]В MS SQL нет функции if.
Необходимо либо переформулировать запрос (на первый взгляд - это можно сделать), либо используйте CASE
Удачи!
← →
Ega23 © (2004-08-23 18:29) [2]
select S.sid, P.name,
LoadState= CASE
when ((P.RowsCnt>P.WORKACTS) or (P.RowsLinkCnt>P.WORKLINKS))
then "Не завершена" else "Завершена" end,
S.starttime, S.fintime, U.displayname, S.userid
from ltb_sessions S, ltb_loadparams P, ltb_users U
where S.sid=P.sid and S.userid=U.userid and S.stype=1
ORDER BY Sid DESC
Вроде так
← →
Skyle © (2004-08-24 06:31) [3]
> LoadState= CASE ... END
Подозреваю, что правильнее будет сделать несколько наоборот.
CASE...END AS LoadState.
Так больше похоже на то, чего автор вопроса хотел.
← →
Ega23 © (2004-08-24 09:26) [4]Подозреваю, что правильнее будет сделать несколько наоборот.
CASE...END AS LoadState.
Так больше похоже на то, чего автор вопроса хотел.
Это по ANSI SQL правилам. А диалект T-SQL разрешает конструкцию LoadState=CASE... Автор же на T-SQL пишет...
← →
Skyle © (2004-08-24 09:38) [5]
> [4] Ega23 © (24.08.04 09:26)
Согласен ;-)
← →
сергей1 (2004-08-24 09:39) [6]в T-SQL есть оператор if-then
← →
Ega23 © (2004-08-24 09:50) [7]2 сергей1 (24.08.04 09:39) [6]
Но не в конструкции Select:
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
← →
сергей1 (2004-08-24 10:08) [8]согласен, просто МОА так написал ...
← →
DA (2004-08-24 17:54) [9]Спасибо!
Помогите еще с одним запросом, если нетрудно.Заранее благодарен.UPDATE ltb_docs SET VALUE=:VALUE,TEXTSIZE="+IntToStr(len_text)+" WHERE CODE="+IntToStr(id_code)
Ошибка где-то около TEXTSIZE :)
← →
Ega23 © (2004-08-24 18:16) [10]На первый взгляд, вот это:
:VALUE
Параметр поставил?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c