SQL连接列

时间:2011-12-04 12:53:43

标签: sql oracle

我有一组表格如下

customer(cus_id,cus_first_name,cus_last_name);
insert into customer values ('c001', 'tan', 'wah khang');

我想创建一个select语句来显示姓氏连接的名字。 示例:

tan wah khang

可能吗?

5 个答案:

答案 0 :(得分:4)

您可以使用(这不称为“加入”,但连接 * || (double pipe) *运算符:

SELECT (cus_first_name || ' ' || cus_last_name) AS full_name
FROM customer

答案 1 :(得分:2)

||与MySQL的CONCAT_WS不完全相同。如果其中一个操作数为CONCAT_WS,则NULL会删除分隔符。因此,如果firstname是NULL而lastname是'Smith',那么在MySQL中:

CONCAT_WS(' ', firstname, lastname) returns "Smith"

然而,在Oracle中:

firstname || ' ' || lastname returns " Smith" (prepended with a space)

我很想知道是否存在真正的等价物,或者您是否必须编写存储过程来模拟CONCAT_WS。这非常有用。

答案 2 :(得分:1)

select cus_first_name || ' ' || cus_last_name from customer

答案 3 :(得分:0)

是:

select cus_first || ' ' || cus_last from your_table;

答案 4 :(得分:0)

在Oracle,PostgreSQL,DB2,Informix中:

select cus_first_name || ' ' || cus_last_name from customer

在SQL-Server中:

select cus_first_name + ' ' + cus_last_name from customer

在MS-Access中:

select cus_first_name & ' ' & cus_last_name from customer

在MySQL中:

select concat(cus_first_name , ' ', cus_last_name) from customer

在Informix中:

select concatenate(cus_first_name,concatenate(' ',cus_last_name)) from customer