[퀴즈] SQLite collate 문제

Android 프로젝트를 하다가 SQLite를 다시 쓸 일이 생겨서 찾아보다가 흥미로운 부분이 있네요.
다 함께 풀어보죠~

CREATE TABLE t1(
x INTEGER PRIMARY KEY,
a, /* collating sequence BINARY */
b COLLATE BINARY, /* collating sequence BINARY */
c COLLATE RTRIM, /* collating sequence RTRIM */
d COLLATE NOCASE /* collating sequence NOCASE */
);
/* x a b c d */
INSERT INTO t1 VALUES(1,'abc','abc', 'abc ','abc');
INSERT INTO t1 VALUES(2,'abc','abc', 'abc', 'ABC');
INSERT INTO t1 VALUES(3,'abc','abc', 'abc ', 'Abc');
INSERT INTO t1 VALUES(4,'abc','abc ','ABC', 'abc');


아래의 SQL 문을 수행하면 어떤 값들이 나오는지 맞추어 보세요~!


SELECT x FROM t1 WHERE a = b ORDER BY x;

SELECT x FROM t1 WHERE a = b COLLATE RTRIM ORDER BY x;

SELECT x FROM t1 WHERE d = a ORDER BY x;

SELECT x FROM t1 WHERE a = d ORDER BY x;

SELECT x FROM t1 WHERE 'abc' = c ORDER BY x;

SELECT x FROM t1 WHERE c = 'abc' ORDER BY x;

SELECT count(*) FROM t1 GROUP BY d ORDER BY 1;

SELECT count(*) FROM t1 GROUP BY (d || '') ORDER BY 1;

SELECT x FROM t1 ORDER BY c, x;

SELECT x FROM t1 ORDER BY (c||''), x;

SELECT x FROM t1 ORDER BY c COLLATE NOCASE, x;



답은 여기

more..



출처 : http://www.sqlite.org/datatype3.html

chaoskcuf
프로그래밍/TIP& Study 2010/07/16 20:21

트랙백 주소 : http://chaoskcuf.com/trackback/291

댓글을 달아 주세요

Powerd by Textcube, designed by criuce
rss