web-dev-qa-db-ja.com

なぜ「||」 PostgreSQL / Redshiftで文字列の連結として使用されます

これは本当に変だと思います。主要なプログラミング言語を見ると、それらはすべて「||」を使用しています。論理「または」演算子として。 「||」の(おそらく歴史的な)理由はありますか? CONCAT()関数と一緒にPostgreSQLに住んでいますか?

17
Arius
-- DB2 / Oracle / Postgres / ANSI Standard
SELECT first_name || ' ' || last_name As full_name FROM customers;
-- Sybase / SQL Server / Microsoft Access
SELECT FirstName + ' ' + LastName As FullName FROM Customers;
-- MySQL
SELECT CONCAT(`FirstName`, ' ', `LastName`) As `FullName` FROM `Customers`;

二重パイプ連結は、ANSISQL標準の一部です。 SQLは当初、メインフレーム時代の奥深くにIBMで開発されました。あなたが考えている「主要なプログラミング言語」のほとんどは、SQLが作成されたときには存在していませんでした。最近のほとんどの言語は、あるレベルでは「Cライク」ですが、たとえばFORTRAN77は、連結演算子として//を使用します。

33
Joe Harris