2016-01-15 2 views
0

Я пытаюсь объединить строки из двух отдельных столбцов. Проблема в том, что первая строка в конкатенации должна быть первой в алфавитном порядке.Конкатенатные строки в алфавитном порядке

Для примера:

Column 1  Column 2  Concatenation 
def    abc    abcdef 
abc    def    abcdef 

Есть ли способ сделать это в Access? SQL Server также может быть вариантом, но мне было бы намного легче оставаться в Access.

ответ

2

Для двух строк, вы можете остаться в Access:

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

Если у вас более двух строк в строке, то SQL Server будет гораздо лучшим вариантом.

0

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 сервер, то вы можете сделать то же самое, если вы хотите, чтобы сцепить более чем 2 строки

Смежные вопросы