Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
create or replace function TO_NUMBER_EX (sNumber in varchar2) return number is
---------------------------------------------------------------------
-- Преобразование строки в число с разными символами разделителями
---------------------------------------------------------------------
iRet number(12,3) :=0;
cReplSgn char(1);
cToReplSgn char(1);
begin
begin
iRet := to_number(sNumber);
exception
when OTHERS then
iRet := null;
end;
if iRet is null then
begin
if instr(sNumber,'.') > 0 then
cReplSgn := '.';
cToReplSgn := ',';
else
cReplSgn := ',';
cToReplSgn := '.';
end if;
iRet := to_number(replace(sNumber,cReplSgn,cToReplSgn));
exception
when OTHERS then
iRet := null;
end;
end if;
return(nvl(iRet,0));
end TO_NUMBER_EX;
PL/SQL
велосипедно-костыльное программирование с неожиданными значениями по умолчанию
function try_to_date(p_value in varchar2)
return date
is
l_date date;
l_fmt sys.odcivarchar2list := sys.odcivarchar2list('DD.MM.YYYY', 'YYYY/MM/DD', 'YYYY.MM.DD', 'dd.mm.yyyy', 'yyyy/mm/dd', 'yyyy.mm.dd');
begin
for i in 1..l_fmt.count loop
begin
l_date := to_date(p_value, l_fmt(i));
return l_date;
exception
when OTHERS then null;
end;
end loop;
return null;
end;
if @SubDepartmentID = 0 set @SubDepartmentID = null
if @QuoteID = 0 set @QuoteID = null
if @PartnerID = 0 set @PartnerID = null
if @QuoteID = 0 set @QuoteID = null
if @SubDepartmentID = 0 set @SubDepartmentID = null
Select count(*) From news WHERE bigblock = 0 AND
(
(
(parent = 30) AND
(
(news_onmain = 1) OR (bigblock = 1) OR (news_onmain2 = 1)
)
)
) OR
(
(
parent IN (31,32,33,53,34,46,35)
)
OR
(
categories REGEXP (31|32|33|53|34|46|35)
)
) AND date < 1487598228
SELECT main.id, main.post_title AS title,
t1.meta_value AS description,
t2.meta_value AS after_course,
t3.meta_value AS program,
t4.meta_value AS claims,
t5.meta_value AS num_times,
t6.meta_value AS duration,
t7.meta_value AS bg_color,
t8.meta_value AS cost,
t9.meta_value AS discount,
t10.meta_value AS date1,
t11.meta_value AS date2,
t12.meta_value AS date3,
t13.meta_value AS date4
FROM wp_posts AS main
LEFT JOIN wp_postmeta AS t1 ON t1.post_id = main.id AND t1.meta_key = 'Описание'
LEFT JOIN wp_postmeta AS t2 ON t2.post_id = main.id AND t2.meta_key = 'После курса'
LEFT JOIN wp_postmeta AS t3 ON t3.post_id = main.id AND t3.meta_key = 'Программа'
LEFT JOIN wp_postmeta AS t4 ON t4.post_id = main.id AND t4.meta_key = 'Требования'
LEFT JOIN wp_postmeta AS t5 ON t5.post_id = main.id AND t5.meta_key = 'time'
LEFT JOIN wp_postmeta AS t6 ON t6.post_id = main.id AND t6.meta_key = 'long'
LEFT JOIN wp_postmeta AS t7 ON t7.post_id = main.id AND t7.meta_key = 'HEX'
LEFT JOIN wp_postmeta AS t8 ON t8.post_id = main.id AND t8.meta_key = 'cost'
LEFT JOIN wp_postmeta AS t9 ON t9.post_id = main.id AND t9.meta_key = 'discont'
LEFT JOIN wp_postmeta AS t10 ON t10.post_id = main.id AND t10.meta_key = 'date1'
LEFT JOIN wp_postmeta AS t11 ON t11.post_id = main.id AND t11.meta_key = 'date2'
LEFT JOIN wp_postmeta AS t12 ON t12.post_id = main.id AND t12.meta_key = 'date3'
LEFT JOIN wp_postmeta AS t13 ON t13.post_id = main.id AND t13.meta_key = 'date4'
INNER JOIN wp_term_relationships ON main.id = wp_term_relationships.object_id
WHERE wp_term_relationships.term_taxonomy_id = :term_taxonomy_id AND main.post_status = 'publish'
ORDER BY main.menu_order DESC
with cteTypes (TypeId)
as (
select 4
union all select 5
union all select 6
union all select 9
union all select 1
)
select *
from dbo.SomeTable tbl
cross join ( select TypeId from cteTypes ) t ( TypeId )
Великолепный CROSS JOIN.
Не пишите так, можно просто:
cross join cteTypes
и все!