char.sql 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. --
  2. -- CHAR
  3. --
  4. -- fixed-length by value
  5. -- internally passed by value if <= 4 bytes in storage
  6. SELECT char 'c' = char 'c' AS true;
  7. --
  8. -- Build a table for testing
  9. --
  10. CREATE TABLE CHAR_TBL(f1 char);
  11. INSERT INTO CHAR_TBL (f1) VALUES ('a');
  12. INSERT INTO CHAR_TBL (f1) VALUES ('A');
  13. -- any of the following three input formats are acceptable
  14. INSERT INTO CHAR_TBL (f1) VALUES ('1');
  15. INSERT INTO CHAR_TBL (f1) VALUES (2);
  16. INSERT INTO CHAR_TBL (f1) VALUES ('3');
  17. -- zero-length char
  18. INSERT INTO CHAR_TBL (f1) VALUES ('');
  19. -- try char's of greater than 1 length
  20. INSERT INTO CHAR_TBL (f1) VALUES ('cd');
  21. INSERT INTO CHAR_TBL (f1) VALUES ('c ');
  22. SELECT * FROM CHAR_TBL;
  23. SELECT c.*
  24. FROM CHAR_TBL c
  25. WHERE c.f1 <> 'a';
  26. SELECT c.*
  27. FROM CHAR_TBL c
  28. WHERE c.f1 = 'a';
  29. SELECT c.*
  30. FROM CHAR_TBL c
  31. WHERE c.f1 < 'a';
  32. SELECT c.*
  33. FROM CHAR_TBL c
  34. WHERE c.f1 <= 'a';
  35. SELECT c.*
  36. FROM CHAR_TBL c
  37. WHERE c.f1 > 'a';
  38. SELECT c.*
  39. FROM CHAR_TBL c
  40. WHERE c.f1 >= 'a';
  41. DROP TABLE CHAR_TBL;
  42. --
  43. -- Now test longer arrays of char
  44. --
  45. CREATE TABLE CHAR_TBL(f1 char(4));
  46. INSERT INTO CHAR_TBL (f1) VALUES ('a');
  47. INSERT INTO CHAR_TBL (f1) VALUES ('ab');
  48. INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
  49. INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
  50. INSERT INTO CHAR_TBL (f1) VALUES ('abcd ');
  51. SELECT * FROM CHAR_TBL;