-
−859
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
create table test(
id integer primary key auto_increment,
d datetime not null
);
insert into test(id) values (1);
-- а сейчас я покажу вам особую уличную магию
select *, d is null, d is not null from test;
select *, d is null, d is not null from test
where d is not null;
select *, d is null, d is not null from test
where d is null; -- WTF?!
select *, d is null, d is not null from test
where d is not null and d is null; -- WTF?!
Все 4 select'а выводят одинаковый результат... MySQL такой MySQL...
P.S. Вставка всякой херни вместо вывода ошибки лечится добавлением STRICT_ALL_TABLES в sql_mode. А вот where с нулевой датой не лечится, видимо, это баг движка.
bormand,
17 Октября 2014
-
−123
- 1
- 2
- 3
- 4
- 5
l_space varchar2(100) := ' ';
l_space_1 varchar2(100) := ' ';
l_space_2 varchar2(100) := ' ';
l_space_3 varchar2(100) := ' ';
l_space_4 varchar2(100) := ' ';
n1919,
13 Октября 2014
-
−124
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
SELECT * FROM (
SELECT `comments`.`user`,
`comments`.`time`,
`comments`.`topic`,
`comments`.`id` AS `commid`,
`topic`.`name`,
`topic`.`id`,
`topic`.`translit`,
`topic`.`blog`,
`user`.`login`
FROM `comments`, `topic`, `user`
WHERE
`comments`.`topic` IN (
SELECT DISTINCT `topic`
FROM `comments`
ORDER BY `time` DESC)
AND `topic`.`id` = `comments`.`topic`
AND `user`.`id` = `comments`.`user`
ORDER BY `comments`.`time` DESC
) `data`
GROUP BY `data`.`topic`
ORDER BY `data`.`time` DESC
LIMIT 10
Говнокод или необходимость?
Не нашел способов сделать это одним запросом.
Efog,
11 Октября 2014
-
−120
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
CREATE TABLE `numbers` (
`number` BIGINT(20) DEFAULT NULL
) ENGINE=InnoDB;
CREATE TABLE `numbers_small` (
`number` INT(11) DEFAULT NULL
) ENGINE=InnoDB;
-- numbers
INSERT INTO `numbers` (`number`) VALUES('0');
INSERT INTO `numbers` (`number`) VALUES('1000');
INSERT INTO `numbers` (`number`) VALUES('2000');
INSERT INTO `numbers` (`number`) VALUES('3000');
INSERT INTO `numbers` (`number`) VALUES('4000');
INSERT INTO `numbers` (`number`) VALUES('5000');
-- 10 000 lines of inserting numbers into table numbers
-- ...
INSERT INTO `numbers` (`number`) VALUES('5999');
INSERT INTO `numbers` (`number`) VALUES('6999');
INSERT INTO `numbers` (`number`) VALUES('7999');
INSERT INTO `numbers` (`number`) VALUES('8999');
INSERT INTO `numbers` (`number`) VALUES('9999');
-- numbers small
INSERT INTO `numbers_small` (`number`) VALUES('0');
INSERT INTO `numbers_small` (`number`) VALUES('1');
INSERT INTO `numbers_small` (`number`) VALUES('2');
INSERT INTO `numbers_small` (`number`) VALUES('3');
INSERT INTO `numbers_small` (`number`) VALUES('4');
INSERT INTO `numbers_small` (`number`) VALUES('5');
INSERT INTO `numbers_small` (`number`) VALUES('6');
INSERT INTO `numbers_small` (`number`) VALUES('7');
INSERT INTO `numbers_small` (`number`) VALUES('8');
INSERT INTO `numbers_small` (`number`) VALUES('9');
Сделали нам программу на java. Прислали скрипт для обновления базы данных DatabaseUpdateScript.sql на 874 KB.
ftr,
08 Октября 2014
-
−118
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
Оригинал
<string name="create_table_report_sms">create table reportSms( id TEXT NOT NULL );</string>
<string name="create_table_report_sms_pending">create table reportSmsPending( id TEXT NOT NULL, address TEXT, body TEXT, date TEXT );</string>
Перевод
<string name="create_table_report_sms">Создание таблицы отчета( id TEXT NOT NULL );</string>
<string name="create_table_report_sms_pending">Ожидание создания таблицы отчета( id TEXT NOT NULL, address TEXT, body TEXT, date TEXT );</string>
Android, сложности перевода.
donbot,
07 Октября 2014
-
−119
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
select *
from ( select ... ,
case
when txn_minute >= date '2014-08-01'
and txn_minute < date '2014-08-02'
then
'1 августа'
when txn_minute >= date '2014-08-02'
and txn_minute < date '2014-08-03'
then
'2 августа'
when txn_minute >= date '2014-08-03'
and txn_minute < date '2014-08-04'
then
'3 августа'
when txn_minute >= date '2014-08-04'
and txn_minute < date '2014-08-05'
then
'4 августа'
when txn_minute >= date '2014-08-05'
and txn_minute < date '2014-08-06'
then
'5 августа'
.....
when txn_minute >= date '2014-08-31'
and txn_minute < date '2014-09-01'
then
'31 августа'
end
"Дата"
from txn
where txn_minute >= date '2014-08-01'
and txn_minute < date '2014-09-01'
group by .....
.....
end) pivot (sum (am)
for "Дата"
in ('1 августа',
.....
'29 августа',
'30 августа',
'31 августа'))
Кто-то подсказал правильное решение :-)
Djayn,
24 Сентября 2014
-
−122
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Select
min(convert(char(10), DatField, 102)) as DatField,
min('ConstantForMe') as type,
f1
From sometable
Where /*условия*/
Group By f1
Люблю я агрегаты,
Любовью к ним пылаю неземною.
Неявные форматы -
И что хотите делайте со мною!
Для вас это - ерунда,
Подумаешь convert!
Но вы возьмите дату,
Но текстового формата,
Десяток первых цифер,
Смешайте всё с константой,
И группируйте с ней.
Поймёте вы всем сердцем -
Какое это чудо,
Потом вам станет худо,
Но это уж потом.
bliznezz,
16 Сентября 2014
-
−118
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
CREATE FUNCTION get_date RETURN DATE
IS
BEGIN
RETURN SYSDATE;
END;
DECLARE
v_date DATE;
v_dummy VARCHAR2(2);
BEGIN
v_date := SYSDATE+4/24/60/60;
SELECT MAX(dummy)
INTO v_dummy
FROM dual
connect BY v_date > get_date;
END;
"А есть ли какой-то еще способ, когда нет прав на DBMS_LOCK? "
http://www.sql.ru/forum/1115120/pauza-v-pl-sql-kak
n1919,
10 Сентября 2014
-
−116
- 1
- 2
- 3
insert into #DivByDep(DivisionGUID,DivisionName)
select dbd.DivisionGUID,ISNULL(d.NameShort,d.NameShort) from DivByDep(@DepartmentGUID, @DivisionGUID, 4) dbd
LEFT JOIN rrMasterData.dbo.Division d WITH (NOLOCK) ON d.GUID=dbd.DivisionGUID
ISNULL(d.NameShort,d.NameShort) - а если имя пустое, то... ну что же, оставим
BobKexit,
07 Августа 2014
-
−117
- 1
DELETE FROM "DB_NAME"."TABLE_NAME" WHERE ROWID = 'AAAgtGAAFAAAAYDAAC' AND ORA_ROWSCN = '17177328' and ( "PKEY_COL" is null or "PKEY_COL" is not null )
Запрос, генерируемый SQL Developer для удаления строки. Ну чё, зато работает.
Elvenfighter,
31 Июля 2014