57

What does || do in SQL?

SELECT 'a' || ',' || 'b' AS letter
Cody Gray
  • 230,875
  • 49
  • 477
  • 553

6 Answers6

81

|| represents string concatenation. Unfortunately, string concatenation is not completely portable across all sql dialects:

  • ansi sql: || (infix operator)
  • mysql: concat ( vararg function ). caution: || means 'logical or' (It's configurable, however; thanks to @hvd for pointing that out)
  • oracle: || (infix operator), concat ( caution: function of arity 2 only ! )
  • postgres: || (infix operator)
  • sql server: + (infix operator), concat ( vararg function )
  • sqlite: || (infix operator)

hopefully the confusion is complete ...

Community
  • 1
  • 1
collapsar
  • 16,200
  • 4
  • 33
  • 60
6

It is a concat statement. It will concatenate the two strings.

Here is a helpful post!

What is the difference between "||" operator and concat function in Oracle?

Community
  • 1
  • 1
John Hartsock
  • 82,242
  • 22
  • 125
  • 144
6

SELECT 'a' || ',' || 'b' AS letter will combine a letter. The result become 'a,b'

ivanprakasa
  • 167
  • 1
  • 3
  • 11
5

It's a concatenation operator. So you would get 'a,b' from that. I think || will work on most RDBMS's. SQL Server requires the + operator (thanks to HVD for setting me straight!).

Andrew
  • 7,856
  • 3
  • 24
  • 45
  • 1
    Microsoft SQL Server is one of the exceptions: it doesn't support `||`, and requires `+`. –  Apr 29 '14 at 19:13
5

In Oracle, SQLite3, and MySQL, it concatenates strings. Please see the Oracle documentation. The MySQL documentation.

Also, it's part of ANSI SQL, but read this for more information.

SQLMason
  • 3,228
  • 1
  • 28
  • 40
1

in oracle its a shortcut for concatenate

http://docs.oracle.com/cd/B19306_01/server.102/b14200/operators003.htm

Jonathan
  • 1,554
  • 3
  • 16
  • 23