Конкатенация строк в SQLITE со значениями NA? - PullRequest
1 голос
/ 23 марта 2020

В настоящее время работает в SQLite и имеет следующую таблицу

id subject_1  subject_2 
1  maths       algebra
2  english     <NA>
3  french      speech

Я хотел бы создать новый столбец - который является объединением столбцов subject_1 и subject_2, однако у меня есть значения в моем столбце subject_2 - Есть ли способ объединения столбцов, чтобы я мог получить следующую таблицу

id new_col
1  maths algebra
2  english
3  french speech

Теперь я попробовал два следующих метода - оба из которых не работали; конкатенация с использованием || и coalesce (который принимает только первое ненулевое значение)

select
id 
subejct_1 | ''| subject_2 as new_col 
from my_table 

coalesce - не вариант, так как я хотел бы, чтобы все строковые выходы были вместе из обоих столбцов.

Есть ли способ преобразования значений NA перед рукой в ​​пустую строку?

Ответы [ 2 ]

2 голосов
/ 23 марта 2020

Если вы уверены, что subject_1 не содержит нулей, используйте coalesce только для subject_2:

select id,
  subject_1 || COALESCE(' ' || subject_2, '') new_col
from tablename 

См. Демонстрационную версию . Результаты:

| id  | new_col       |
| --- | ------------- |
| 1   | maths algebra |
| 2   | english       |
| 3   | french speech |
0 голосов
/ 23 марта 2020

К сожалению, SQLite не имеет функции concat_ws, по крайней мере, насколько мне известно. Это немного неуклюже, но вы можете эмулировать это с помощью выражения case:

SELECT id,
       CASE WHEN subject_2 IS NULL THEN subject_1 
                                   ELSE subject_1 || ' ' || subject_2
       END
FROM   my_table
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...