MySQL форматирование строк или возвращение пустой строки в NULL - PullRequest
0 голосов
/ 20 ноября 2011

Я экспортирую SELECT result to CSV via INTO OUTFILE. У меня есть ряд простых строковых функций SQL, которые я использую для форматирования данных. Например: CONCAT('$',FORMAT(property.price,2)). В противном случае я хотел бы вернуть пустую строку, если значение равно NULL, но я не уверен, как сделать оба одновременно.

Также мне интересно, как проще всего взять TinyInt значение 0 или 1 и вернуть «да» или «нет».

Ответы [ 3 ]

1 голос
/ 20 ноября 2011

Для tinyint вы можете использовать оператор IF

select if(tinyint_value,'yes','no')

, для первой части вы также можете использовать оператор operator

select if(property.price is not null, CONCAT('$',FORMAT(property.price,2)),'')
1 голос
/ 20 ноября 2011

Чтобы вернуть yes, no или пустую строку в зависимости от значения столбца, вы можете использовать регистр следующим образом:

select case column when 1 then 'Yes' else 'No' end as columalias ,
       case when stringcolumn is NULL then '' else stringcolumn end as stringcolumn
from table

или

select case column when 1 then 'Yes' else 'No' end as columalias ,
       IFNULL(stringcolumn,'') as stringcolumn
from table
0 голосов
/ 20 ноября 2011

Вы можете использовать функцию coalesce () . Возвращает первый из своих аргументов, который не равен NULL.

SELECT COALESCE(NULL, 1);
-> 1
SELECT COALESCE(2, 1);
-> 2
...