20 Mayıs 2013 Pazartesi

SQL, REPLACE Kullanımı


UPDATE SOS_OBJ_DEF SET OBJ_EXPLANATION = Replace(OBJ_EXPLANATION,’chr(39)’, ””)
UPDATE myTable
SET myField = REPLACE(myField, '''', '"');

Oracle – PL-SQL LISTAGG (Satırı sütün olarak gürüntülemek)


Herhangi bir satır bilgisinin Sütün gibi virgülle yan yana yazılması için “LISTAGG” fonksiyonunu kullanılabilmektedir.
select
deptno,
listagg (ename, ‘,’) WITHIN GROUP (ORDER BY ename)
enames
from
emp
group by
deptno;
DEPTNO     ENAMES
———- ————————————————–
10 CLARK,KING,MILLER
20 ADAMS,FORD,JONES,SCOTT,SMITH
30 ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD

SQL ROWNUMBER Kullanımı


Tablomuzda (TEST_DATE) gruplar (GRUP_NO) halinde haftanın günlerine (HAFTANIN_GUNU) ait tutar (TUTAR) değerlerimiz var.  Her güne ait en yüksek tutarlı 3 kaydı getirmemiz isteniyorsa, buPARTITION BY ifadesi ve ROW_NUMBER() analitik fonksiyonunun kullanımı için gayet güzel bir örnek olacaktır;
WITH test_data AS (
SELECT 1 GRUP_NO, 1 HAFTANIN_GUNU, 3000 TUTAR FROM DUAL UNION ALL
SELECT 1, 4, 2600 FROM DUAL UNION ALL
SELECT 1, 3, 2700 FROM DUAL UNION ALL
SELECT 1, 6, 2600 FROM DUAL UNION ALL
SELECT 1, 2, 2600 FROM DUAL UNION ALL
SELECT 1, 5, 2600 FROM DUAL UNION ALL
SELECT 1, 7, 2600 FROM DUAL UNION ALL
SELECT 2, 1, 4600 FROM DUAL UNION ALL
SELECT 2, 7, 4200 FROM DUAL UNION ALL
SELECT 2, 5, 4200 FROM DUAL UNION ALL
SELECT 2, 2, 4200 FROM DUAL UNION ALL
SELECT 2, 4, 4200 FROM DUAL UNION ALL
SELECT 2, 3, 4200 FROM DUAL UNION ALL
SELECT 2, 6, 4200 FROM DUAL UNION ALL
SELECT 3, 1, 5000 FROM DUAL
)
SELECT *
FROM ( SELECT a.*, ROW_NUMBER() OVER (PARTITION BY grup_no ORDER BY tutar DESC) rn FROM test_data a)
WHERE rn < 4
Görüldüğü gibi ROW_NUMBER() OVER (PARTITION BY grup_no ORDER BY tutar DESC) ifadesi ile test verimizi gruplar halinde ayrı değerlendirerek tutarlarımızı azalan şekilde sıralayıp her birine bir sıra numarası veriyoruz. Bu sıra numaramızı da 4 ten küçük olacak şekilde sınırlandırınca istediğimiz sonuca ulaşmış oluyoruz

ORACLE SQL (AYIN/HAFTANIN İLK & SON GÜNÜ)


AYIN İLK GÜNÜ : Ay bazında Trunc fonksiyonunu kullanabiliriz
SELECT TRUNC(sysdate, 'MM') FROM dual
AYIN SON GÜNÜ : Hazır fonskiyon yazmış adamlar kullan diye ;
SELECT LAST_DAY(sysdate) FROM dual
HAFTANIN İLK GÜNÜ : Ay bazında Trunc fonksiyonunu kullanabiliriz
SELECT TO_CHAR(sysdate - (TO_CHAR(sysdate, 'D')-1),'dd.MM.yyyy') AS PAZARTESI
FROM dual
HAFTANIN SON GÜNÜ : Hazır fonskiyon yazmış adamlar kullan diye ;
SELECT TO_CHAR(sysdate - (TO_CHAR(sysdate, 'D')) + 7 , 'dd.MM.yyyy') AS PAZAR
FROM dual

Oracle DB Tablo ve Fonksiyon Yetkilendirme


Fonksiyon yetkilendirmesi….
GRANT EXECUTE ON [FONKSİYON ADI ] TO [KULLANICI_KODU];   /*  FONSİYONLARA YETKI VERMEK İÇİN */

Tablo yetki vermek için kullanılan kod

GRANT SELECT ON [TABLO_ADI] TO [KULLANICI_KODU];

To grant the SELECT privilege on table t to the authorization IDs maria and harry, use the following syntax:
GRANT SELECT ON TABLE t TO maria,harry
To grant the UPDATE and TRIGGER privileges on table t to the authorization IDs anita and zhi, use the following syntax:
GRANT UPDATE, TRIGGER ON TABLE t TO anita,zhi
To grant the SELECT privilege on table s.v to all users, use the following syntax:
GRANT SELECT ON TABLE s.v to PUBLIC
To grant the EXECUTE privilege on procedure p to the authorization ID george, use the following syntax:
GRANT EXECUTE ON PROCEDURE p TO george
To grant the role purchases_reader_role to the authorization IDs george and maria, use the following syntax:
GRANT purchases_reader_role TO george,maria
To grant the SELECT privilege on table t to the role purchases_reader_role, use the following syntax:
GRANT SELECT ON TABLE t TO purchases_reader_role
To grant the USAGE privilege on the sequence generator order_id to the role sales_role, use the following syntax:
GRANT USAGE ON SEQUENCE order_id TO sales_role;
To grant the USAGE privilege on the user-defined type price to the role finance_role, use the following syntax:
GRANT USAGE ON TYPE price TO finance_role;

Oracle DB – SQL Veri sonunda ve başındaki boşlukların silinmesi


update ser_crm_musteri set FIRMA_UNVANI = RTRIM(FIRMA_UNVANI)
where FIRMA_UNVANI LIKE ‘%   %’

both. If no [remstr] is specified, white spaces are removed.
LTRIM(str): Removes all white spaces from the beginning of the string.
RTRIM(str): Removes all white spaces at the end of the string.
Example 1:
SELECT TRIM(‘   Sample   ’);
Result:
‘Sample’
Example 2:
SELECT LTRIM(‘   Sample   ’);
Result:
‘Sample   ’
Example 3:
SELECT RTRIM(‘   Sample   ’);
Result:
‘   Sample’

css3 Column Count


div
{
-moz-column-count:3; /* Firefox */
-webkit-column-count:3; /* Safari and Chrome */
column-count:3
}
Here is what it looks like in the browser.