PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Защо е '2'> '10'?

Мисля, че PostgreSQL автоматично се опитва да разбере типа зад кулисите и в Linux се опитва да се отърве от „ “, някои от сравненията също се основават на локал.

  • Така, ' 2' > '10' става '2'>'10' и сравнението е '2'>'1'; те не са равни, така че няма нужда да продължавате с останалата част от низа и ascii('2') е по-голямо от ascii('1') , така че се оценява като true.

  • Ако това беше операция за равенство (напр. ' 22' ='22 '), това ще доведе до false, защото Postgres прави сравнение байт по байт. Това е важно, защото машината използва два различни алгоритъма, когато прави сравнения.

  • Ако посочите типа чрез преобразуване на типове, той няма да замени правилата за пространство (' '=>'' ).

Също така заслугата е на: RhodiumToad и Peerce в #postgresql



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете от функцията на PostgreSQL, която връща съставен тип

  2. Как да напиша правило за изтриване на изглед?

  3. Агрегатите не са разрешени в клаузата WHERE в грешка на postgreSQL

  4. Опресняването на материализиран изглед не включва добавена колона

  5. ГРЕШКА:трябва да бъде член на роля при създаване на схема в PostgreSQL