按字母顺序连接字符串

时间:2016-01-15 16:38:59

标签: sql sql-server database ms-access access-vba

我正在尝试从两个单独的列连接字符串。麻烦的是,我需要串联中的第一个字符串按字母顺序排在第一位。

例如:

Column 1        Column 2        Concatenation
def             abc             abcdef
abc             def             abcdef

在Access中有没有办法做到这一点? SQL Server也可以是一个选项,但是我可以更容易地保持在Access中。

2 个答案:

答案 0 :(得分:3)

对于两个字符串,您可以留在Access:

select iif(column1 < column2, column1 & column2, column2 & column1) as concatenation

如果行中有两个以上的字符串,那么SQL Server将是一个更好的选择。

答案 1 :(得分:1)

Sql Server版本

create table a
(col1 nvarchar(100)
 ,col2 nvarchar(100)
 )
 insert into a values('abc','def')
 insert into a values('def','abgggccz')
 insert into a values('xyzabc','def')
 insert into a values('def','xyzabc')
 insert into a values('axyzabc','def')
 insert into a values('adef','acxyzabc')
 insert into a values('abcd','x')

查询

select 
case when 
LOWER(col1)>LOWER(col2)
then col2+''+col1
else
col1+''+col2
end
from a

结果

abcdef
abgggcczdef
defxyzabc
defxyzabc
axyzabcdef
acxyzabcadef
abcdx

注意:如果您使用的是sql server,那么如果要连接2个以上的字符串,也可以这样做