select text 'nogadax' AS CAST_str1;
cast_str1
-----------
nogadax
(1 row)
select 'ngd'::text AS CAST_str2;
cast_str2
-----------
ngd
(1 row)
select 'ngd\'s Home'::text AS CAST_str3;
cast_str3
------------
ngd's Home
(1 row)
select 'ngd''s Home'::text AS CAST_str4;
cast_str4
------------
ngd's Home
(1 row)
select int8 '4000000000' as cast_i8_1;
cast_i8_1
------------
4000000000
(1 row)
select 4000000000::int8 as cast_i8_2;
cast_i8_2
------------
4000000000
(1 row)
select int8 '4000000000' + '4000000000'::int8 as cast_i8_3;
cast_i8_3
------------
8000000000
(1 row)
select float4 '1.55' as cast_f4_1;
cast_f4_1
-----------
1.55
(1 row)
select '1.55'::float4 as cast_f4_2;
cast_f4_2
-----------
1.55
(1 row)
select bool 't' as bool_1;
bool_1
--------
t
(1 row)
select int2 '12', 13::int4, 14::int8, 100;
?column? | ?column? | ?column? | ?column?
----------+----------+----------+----------
12 | 13 | 14 | 100
(1 row)
select float4 '11.234511' as float4_1;
float4_1
----------
11.2345
(1 row)
select float8 '11.234511' as float8_1;
float8_1
-----------
11.234511
(1 row)
select float8 '1211.2345112111' as float8_2;
float8_2
-----------------
1211.2345112111
(1 row)
select text 'ngd' as team_name , point '(1,2)' as location;
team_name | location
-----------+----------
ngd | (1,2)
(1 row)
select '2001-3-1'::date + 4 as date2;
date2
------------
2001-03-5
(1 row)
select '2001-3-1'::date +'2 year'::interval as date3;
date3
------------------------
2003-03-01 00:00:00+09
(1 row)
select '2001-3-1'::date +'3 month'::interval as date4;
date4
------------------------
2001-06-01 00:00:00+09
(1 row)
select '2001-3-1'::date +'4 day'::interval as date5;
date5
------------------------
2001-03-05 00:00:00+09
(1 row)
"getpgusername()"ÇÔ¼ö´Â ÇöÀçÀÇ »ç¿ëÀÚ À̸§À» ¸®ÅÏÇÑ´Ù.
select getpgusername() AS cur_user_name ;
cur_user_name
---------------
postgres
(1 row)
"now" ´Â ÇöÀç½Ã°£À» °®´Â Ưº°ÇÑ º¯¼öÀÌ´Ù.
select date('now') as cur_date;
cur_date
------------
2001-03-16
(1 row)
select time('now') as cur_time;
cur_time
----------
19:14:17
(1 row)
select timestamp('now') as cur_transaction_date_time;
cur_transaction_date_time
---------------------------
2001-03-16 19:14:17+09
(1 row)
select char_length('nogadax') as char_length_1;
char_length_1
---------------
7
(1 row)
select char_length('³ë°¡´Ù') as char_length_2;
char_length_2
---------------
3
(1 row)
select position('g' in 'nogada') as pos_1;
pos_1
-------
3
(1 row)
NULLIF(input,value) ´Â input==value À̸é NULLÀ» ¸®ÅÏÇÏ°í ¾Æ´Ï¸é input °ªÀ» ¸®ÅÏÇÑ´Ù.
¾Æ·¡ÀÇ Ã¹ ¿¹Á¦´Â NULL À» ¸®ÅÏÇÑ´Ù.
select NULLIF('nn'::text,'nn'::text) as NULLIF_Test_1;
nullif_test_1
---------------
(1 row)
select NULLIF('nb'::text,'nn'::text) as NULLIF_Test_2;
nullif_test_2
---------------
nb
(1 row)
COALESCE(list) ÀÇ list ´Â "a,b,c,.."ó·³ Ç¥ÇöÇÏ°í ¸®½ºÆ®»óÀÇ ÀÎÀÚÁß NULL °ªÀÌ ¾Æ´Ñ Á¦ÀÏ Ã¹ ÀÎÀÚ¸¦ ¸®ÅÏÇÑ´Ù.
select COALESCE(1,2,3,4) AS COALESCE_Test_1;
coalesce_test_1
-----------------
1
(1 row)
select COALESCE(5,6,7) AS COALESCE_Test_2;
coalesce_test_2
-----------------
5
(1 row)
select COALESCE(8,9) AS COALESCE_Test_3;
coalesce_test_3
-----------------
8
(1 row)
"CASE WHEN expr THEN value1 ELSE value2 END" expr ÀÌ ÂüÀ̸é value1À», ¾Æ´Ï¸é value2¸¦ ¸®ÅÏÇÑ´Ù.
select
CASE
WHEN 'ngd'::text = 'ngd'::text
THEN 'match' ELSE 'no match'
END ;
case
-------
match
(1 row)
select
CASE
WHEN 'ngd'::text = 'nogadax'::text
THEN 'match' ELSE 'no match'
END ;
case
----------
no match
(1 row)
DROP FUNCTION SQL_FUNC_1(int4);
DROP FUNCTION SQL_FUNC_2(int4);
DROP TABLE NOGADA_TAB;
create TABLE NOGADA_TAB (id_ngd int4 , name_ngd text);
INSERT INTO NOGADA_TAB VALUES (1, 'ngd_1');
INSERT INTO NOGADA_TAB VALUES (2, 'ngd_2');
CREATE FUNCTION SQL_FUNC_1(int4) RETURNS text AS '
SELECT
CASE
WHEN NOGADA_TAB.id_ngd = $1
THEN ''ÀÖ±º¿ä..''::text
ELSE ''¾ø±º¿ä..''::text
END
' LANGUAGE 'sql';
SELECT SQL_FUNC_1(1) ;
sql_func_1
------------
ÀÖ±º¿ä..
(1 row)
SELECT SQL_FUNC_1(3) ;
sql_func_1
------------
¾ø±º¿ä..
(1 row)
CREATE FUNCTION SQL_FUNC_2(int4) RETURNS text AS '
SELECT
CASE
WHEN NOGADA_TAB.id_ngd = $1
THEN NOGADA_TAB.name_ngd
ELSE ''¾ø±º¿ä..''::text
END
' LANGUAGE 'sql';
SELECT SQL_FUNC_2(1) as NOGADA_TAB_NAME;
nogada_tab_name
-----------------
ngd_1
(1 row)
´ÙÀ½Àº À§¿¡¼ ¼³¸íÇÑ Àüü ¿¹Á¦ÀÌ´Ù. copyÇÏ¿© ÆÄÀÏ·Î ÀúÀå ÈÄ PSQL ¿¡¼ Å×½ºÆ® ÇÒ ¼ö ÀÖ´Ù. Âü°í·Î "--" ½ÃÀÛÇÏ´Â ¶óÀÎÀº ÁÖ¼®ÀÌ´Ù.
------------------------------------------------
-- By NoGaDa-X (nogadax@kldp.org)
-- PostgreSQL's SQL Examples
-- (http://ngd.pe.kr)
-- /2001/03/15
------------------------------------------------
--String Constants
select text 'nogadax' AS CAST_str1;
select 'ngd'::text AS CAST_str2;
select 'ngd\'s Home'::text AS CAST_str3;
select 'ngd''s Home'::text AS CAST_str4;
--Integer Constants
select int8 '4000000000' as cast_i8_1;
select 4000000000::int8 as cast_i8_2;
select int8 '4000000000' + '4000000000'::int8 as cast_i8_3;
--Floating Point Constants
select float4 '1.55' as cast_f4_1;
select '1.55'::float4 as cast_f4_2;
--Data Types
select bool 't' as bool_1;
select int2 '12', 13::int4, 14::int8, 100;
select float4 '11.234511' as float4_1;
select float8 '11.234511' as float8_1;
select float8 '1211.2345112111' as float8_2;
select text 'ngd' as team_name , point '(1,2)' as location;
--Function Constants
select getpgusername() AS cur_user_name ;
select date('now') as cur_date;
select time('now') as cur_time;
select timestamp('now') as cur_transaction_date_time;
--String Functions
select char_length('nogadax') as char_length_1;
select char_length('³ë°¡´Ù') as char_length_2;
select position('g' in 'nogada') as pos_1;
--SQL FUNCTIONs
--SQL FUNCTIONs
--NULLIF(input,value)
--IF input==value THEN return NULL ELSE input
select NULLIF('nn'::text,'nn'::text) as NULLIF_Test_1;
select NULLIF('nb'::text,'nn'::text) as NULLIF_Test_2;
--COALESCE(list)
--list is (a,b,c,..)
--First-Non-NULL-value in list is returned
select COALESCE(1,2,3,4) AS COALESCE_Test_1;
select COALESCE(5,6,7) AS COALESCE_Test_2;
select COALESCE(8,9) AS COALESCE_Test_3;
--CASE WHEN expr THEN value1 ELSE value2 END
select
CASE
WHEN 'ngd'::text = 'ngd'::text
THEN 'match' ELSE 'no match'
END ;
select
CASE
WHEN 'ngd'::text = 'nogadax'::text
THEN 'match' ELSE 'no match'
END ;
--User-defined Function with SQL's Functions
DROP FUNCTION SQL_FUNC_1(int4);
DROP FUNCTION SQL_FUNC_2(int4);
DROP TABLE NOGADA_TAB;
create TABLE NOGADA_TAB (id_ngd int4 , name_ngd text);
INSERT INTO NOGADA_TAB VALUES (1, 'ngd_1');
INSERT INTO NOGADA_TAB VALUES (2, 'ngd_2');
CREATE FUNCTION SQL_FUNC_1(int4) RETURNS text AS '
SELECT
CASE
WHEN NOGADA_TAB.id_ngd = $1
THEN ''ÀÖ±º¿ä..''::text
ELSE ''¾ø±º¿ä..''::text
END
' LANGUAGE 'sql';
SELECT SQL_FUNC_1(1) ;
SELECT SQL_FUNC_1(3) ;
CREATE FUNCTION SQL_FUNC_2(int4) RETURNS text AS '
SELECT
CASE
WHEN NOGADA_TAB.id_ngd = $1
THEN NOGADA_TAB.name_ngd
ELSE ''¾ø±º¿ä..''::text
END
' LANGUAGE 'sql';
SELECT SQL_FUNC_2(1) as NOGADA_TAB_NAME;