我正在尝试从两个单独的列连接字符串。麻烦的是,我需要串联中的第一个字符串按字母顺序排在第一位。
例如:
Column 1 Column 2 Concatenation
def abc abcdef
abc def abcdef
在Access中有没有办法做到这一点? SQL Server也可以是一个选项,但是我可以更容易地保持在Access中。
答案 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个以上的字符串,也可以这样做