這個例子,當直覺預計「富巴」的空間,展示了奇怪的行爲:失去在文本轉換
SELECT 'foo'|| '#'::char ||'bar' -- char ok, foo#bar
SELECT 'foo'|| '#' ||'bar' -- literal ok
SELECT 'foo'|| '#'::text ||'bar' -- text ok
SELECT 'foo'|| ' '::char ||'bar' -- STRANGE! LOSTING SPACE!
SELECT ('foo'|| ' '::char ||'bar')='foobar' -- yes, it is true... strange
SELECT 'foo'|| ' '::text ||'bar' -- text OK
SELECT 'foo'|| (' '::char)::text ||'bar' -- char-to-text lost!
SELECT 'foo'|| ' ' ||'bar' -- literal OK
爲什麼PostgreSQL的做到這一點?這並不直觀,並且似乎容易出錯。 PS:PostgreSQL指南在哪裏說(它需要紅色警報)?
尾隨空格被視爲語義無關緊要,並且在比較兩個字符類型值時忽略了 。 http://www.postgresql.org/docs/current/static/datatype-character.html –
感謝@JakubKania,您在指南(!)中找到了一些內容。那麼,讓我們來說說「指導經理」來**紅色**這些隱藏的評論:-) –