- 1
- 2
- 3
- 4
create table money_transaction(
...
summa clob
);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−149.2
create table money_transaction(
...
summa clob
);
подготовка к гиперинфляции
−859.4
SET @DD = DATEPART(dd, GETDATE())
SET @MM = DATEPART(mm, GETDATE())
SET @YYYY = DATEPART(yyyy, GETDATE())
IF LEN(@DD) = '1'
BEGIN
SET @DD = '0' + @DD
END
IF LEN(@MM) = '1'
BEGIN
SET @MM = '0' + @MM
END
SET @DT_D = @DD + '.' + @MM + '.' + @YYYY
Изврат по превращению текущей даты в нужный формат в MSSQL
−861.2
SELECT * FROM obj WHERE telephon LIKE '***' AND off = 0;
SELECT obj.* FROM
obj
INNER JOIN obj2ls ON obj.ObjID = obj2ls.ObjKod AND obj2ls.Bdate <= CURDATE() AND obj2ls.Edate >= CURDATE() AND obj2ls.off = 0
INNER JOIN ls ON obj2ls.LsKod = ls.lsid AND ls.off = 0
INNER JOIN ls2contr ON ls.lsid = ls2contr.lskod AND ls2contr.bdate <= CURDATE() AND ls2contr.edate >= CURDATE() AND ls2contr.off = 0
INNER JOIN contr ON ls2contr.contrkod = contr.contrid AND contr.off = 0
WHERE obj.telephon LIKE '***' AND obj.off = 0 AND contr.contr_type = 2;
О плохом проектировании базы данных.
Был простой запрос, к нему добавили проверку 1го(!) доп. условия.
Еще умиляют JOINы в духе *Kod = *Id.
−852.1
CREATE TABLE account(
balance INT DEFAULT 0,
name VARCHAR(60) NOT NULL,
surname VARCHAR(60) DEFAULT NULL,
login VARCHAR(60) NOT NULL,
password VARCHAR(256) NOT NULL,
active BOOLEAN DEFAULT FALSE,
UNIQUE KEY login (login),
id INT AUTO_INCREMENT PRIMARY KEY
) ENGINE = InnoDB DEFAULT CHARACTER SET utf8
CREATE TABLE email(
email VARCHAR(255) NOT NULL,
user_id INT NOT NULL,
UNIQUE KEY email (email),
id INT AUTO_INCREMENT PRIMARY KEY,
FOREIGN KEY (user_id) REFERENCES account (id)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE = InnoDB DEFAULT CHARACTER SET utf8
CREATE TABLE prefered_email(
email_id VARCHAR(255) NOT NULL,
user_id INT NOT NULL,
id INT AUTO_INCREMENT PRIMARY KEY,
FOREIGN KEY (user_id) REFERENCES account (id)
ON DELETE CASCADE
ON UPDATE CASCADE,
FOREIGN KEY (email_id) REFERENCES email (id)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE = InnoDB DEFAULT CHARACTER SET utf8
При попытке создать prefered_email получаю ошибку: Error: Can't create table './nightfol_print/prefered_phone.frm' (errno: 150)
В чем может быть беда?
Максимум что нашел, это что http://www.sql.ru/forum/actualthread.aspx?tid=626099 типы id должны быть одинаковы ... но они и есть. И все таблицы InnoDB.
Подскажите, пожалуйста.
−861.7
select ...
where ISNULL(e2e.ItemId, -1) = (case when @itemId < 1 then ISNULL(e2e.ItemId, -1) else @itemId end)
and ISNULL(e2e.LeftId, -1) = (case when @parentItemId < 1 then ISNULL(e2e.LeftId, -1) else @parentItemId) end
−863.1
FOR v_word IN
SELECT word FROM list
AS word
LOOP
UPDATE list SET pos=strpos(v_text, v_word) WHERE word=v_word;
END LOOP;
−125.1
create procedure [dbo].[pbsp_GetClientUsers]
(
@ClientId int,
@fname varchar(100),
@lname varchar(100),
@email varchar(150)
)
AS
DECLARE @SQL varchar(1000)
Set @SQL = 'Select TOP 500 *, tblRoles.title AS Role from tblUser INNER JOIN
tbl_mtm_UserRoles ON tblUser.UserId = tbl_mtm_UserRoles.UserId INNER JOIN
tblRoles ON tbl_mtm_UserRoles.RoleId = tblRoles.Id where tblUser.ClientId = ' + STR(@ClientId) + ' '
if LEN(@fname) > 0
Set @SQL = @SQL + ' AND tblUser.fName like ''' + @fname + '%'' '
if LEN(@lname) > 0
Set @SQL = @SQL + ' AND tblUser.lName like ''' + @lname + '%'' '
if LEN(@email) > 0
Set @SQL = @SQL + ' AND tblUser.Email like ''' + @email + '%'' '
Set @SQL = @SQL + ' Order by tblUser.lName, tblUser.Fname'
exec (@SQL)
По долгу работы приходится местами переписывать унаследованный код. Я держалась неделю, но после этого шедевра все таки зарегилась на сайте и решила поделиться перлом. Интересно, что бы делали, если бы параметров еще штук пускай даже двадцать добавить?
−876
INSERT INTO `x_world` VALUES (157282,-115,204,1,206320,'Жопа Волосатая',68797,'Чере',3277,'WarSky',595);
Омг!
Код взят с http://www.google.com/codesearch/p?hl=ru#Vh-Pv7tO-E0/map.sql&q=%D0%B6%D0%BE%D0%BF%D0%B0&sa=N& cd=8&ct=rc
−864.1
select nvl2(view."DOC_TYPE", view."DOC_TYPE", '')||
nvl2(view."SDOC", ', серия:'||view."SDOC", '')||
nvl2(view."NDOC", ', номер:'||view."NDOC", '')||
... from view
Это всё в Оракле
−161.4
SELECT result=1 WHERE 1=0
Тестируем что-то... Но что?