如何在SQL Server 2005中连接两个字符串

时间:2010-10-29 04:22:44

标签: sql-server

我想连接“虚拟”和“停靠”这两个词。

如何在SQL Server 2005中连接它们?它是否支持双引号?

6 个答案:

答案 0 :(得分:30)

试试这个:

DECLARE @COMBINED_STRINGS AS VARCHAR(50); -- Allocate just enough length for the two strings.

SET @COMBINED_STRINGS = 'rupesh''s' + 'malviya';
SELECT @COMBINED_STRINGS; -- Print your combined strings.

或者您可以将字符串放入变量中。这样:

DECLARE @COMBINED_STRINGS AS VARCHAR(50),
        @STRING1 AS VARCHAR(20),
        @STRING2 AS VARCHAR(20);

SET @STRING1 = 'rupesh''s';
SET @STRING2 = 'malviya';
SET @COMBINED_STRINGS = @STRING1 + @STRING2;

SELECT @COMBINED_STRINGS; 

<强>输出:

rupesh'smalviya

只需在字符串中添加一个空格作为分隔符。

答案 1 :(得分:14)

所以如果你的表有一行如下:

firstname lastname
Bill      smith
你可以做点什么

select firstname + ' ' + lastname from thetable

你会得到“比尔史密斯”

答案 2 :(得分:8)

尝试类似

的内容
SELECT 'rupesh''s' + 'malviya'

+ (String Concatenation)

答案 3 :(得分:3)

要在2008年或之前连接两个字符串:

SELECT ISNULL(FirstName, '') + ' ' + ISNULL(SurName, '')

很好用ISNULL,因为“String + NULL”只会给你一个NULL

还有一件事:确保连接字符串,否则使用CAST运算符:

SELECT 2 + 3 

会给5

SELECT '2' + '3'

会给23

答案 4 :(得分:2)

DECLARE @COMBINED_STRINGS AS VARCHAR(50),
        @STRING1 AS VARCHAR(20),
        @STRING2 AS VARCHAR(20);

SET @STRING1 = 'rupesh''s';
SET @STRING2 = 'malviya';
SET @COMBINED_STRINGS = @STRING1 + @STRING2;

SELECT @COMBINED_STRINGS;

SELECT '2' + '3';

我在一个名为TEST.sql的sql文件中键入它,然后运行它。我得到了以下内容。

+-------------------+
| @COMBINED_STRINGS |
+-------------------+
|                 0 |
+-------------------+
1 row in set (0.00 sec)

+-----------+
| '2' + '3' |
+-----------+
|         5 |
+-----------+
1 row in set (0.00 sec)

在研究了这个问题后,我发现SQL中字符串连接的最佳和可靠的排序方式是使用CONCAT方法。 所以我在同一个文件中做了以下更改。

#DECLARE @COMBINED_STRINGS AS VARCHAR(50),
 #       @STRING1 AS VARCHAR(20),
 #       @STRING2 AS VARCHAR(20);

SET @STRING1 = 'rupesh''s';
SET @STRING2 = 'malviya';
#SET @COMBINED_STRINGS = @STRING1 + @STRING2;
SET @COMBINED_STRINGS = (SELECT CONCAT(@STRING1, @STRING2));

SELECT @COMBINED_STRINGS;

#SELECT '2' + '3';
SELECT CONCAT('2','3');

并且在执行文件之后这是输出。

+-------------------+
| @COMBINED_STRINGS |
+-------------------+
| rupesh'smalviya   |
+-------------------+
1 row in set (0.00 sec)

+-----------------+
| CONCAT('2','3') |
+-----------------+
| 23              |
+-----------------+
1 row in set (0.00 sec)

我正在使用的SQL版本是:14.14

答案 5 :(得分:0)

我有一个简单的解决方案,可以从数据库表中进行选择,让您轻松完成。

SELECT b.FirstName + b.LastName FROM tbl_Users b WHERE b.Id='11'

如果您尝试

,可以在那里轻松添加空格
SELECT b.FirstName +' '+ b.LastName FROM Users b WHERE b.Id='23'

在这里你可以和桌子一样多组合。