Hello,
I have a table containting keywords:
CREATE TABLE keywords(
keywordID INTEGER PRIMARY KEY,
keyword VARCHAR(100)
);
INSERT INTO keywords VALUES(1,'Apple');
INSERT INTO keywords VALUES(2,'apple');
INSERT INTO keywords VALUES(3,'Angle');
INSERT INTO keywords VALUES(4,'Tree');
INSERT INTO keywords VALUES(5,'tee');
Normally, they would not be case sensitive, i.e. they would sort:
Angle
Apple
Tree
apple
tee
This is not what I want. So I use COLLATE NOCASE:
CREATE INDEX keyword ON keywords(keyword COLLATE NOCASE ASC);
SELECT keyword FROM keywords ORDER BY keyword COLLATE NOCASE ASC;
in order to obtain:
Angle
Apple
apple
tee
Tree
This is the result I want. However, now I need a WHERE clause to work
exactly the same. So I tried:
SELECT keyword FROM keywords WHERE keyword < 'T*' ORDER BY keyword
COLLATE NOCASE ASC;
Angle
Apple
But the output should be:
Angle
Apple
apple
tee
(i.e. exactly as above but just all strings smaller). It seems to me
that the string-compare operator (<) ignores the collation from my ORDER
BY clause.
Is there any way to obtain a valid result?
Thank you,
Luke
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users