Как изменить значение Select Query Value на Text с использованием MySQL?
Посмотрите на следующий запрос. Как вы отображаете столбец "Действие" в виде текста. Если результатом 'Действие' является LEQ 0, тогда окуните текст "Сбой", а если "Действие" - GRT 0, отобразите текст "Удержание"?
SELECT col1 AS Action
FROM vdk
WHERE t_stamp Between "{StartTime}" AND "{EndTime}"
2 ответа
Используйте CASE WHEN ... ELSE ... END и выберите из вашего набора (запроса):
SELECT *, (CASE WHEN Action <= 0 THEN 'Crash' ELSE 'Hold' END) as ActionText
FROM (
SELECT col1 AS Action
FROM vdk
WHERE t_stamp Between "{StartTime}" AND "{EndTime}"
) q
Рефакторинг ответа выше, так как я не вижу необходимости добавлять запрос в таблицу псевдонимов. Я думаю, что это должно работать, другой ответ должен работать слишком кстати, но это немного более сложный запрос без какой-либо причины.
SELECT (CASE WHEN col1 <= 0 THEN 'Crash' ELSE 'Hold' END) AS Action
FROM vdk
WHERE t_stamp Between "{StartTime}" AND "{EndTime}"
Это приложение похоже на мой первый вопрос, и я подумал, что оно может помочь кому-то еще в будущем. Пользователь может выбрать из раскрывающегося списка таблицы набор параметров для ввода значения в базу данных.
Использование функции расширения компонента Ignition Power Table configureEditor со следующим скриптом. Этот скрипт устанавливает выпадающий список.
if colName == 'Action':
return {options': [(0, 'Null'), (1, 'HOLD'), (2, 'CRASH')]}
Наряду с той же функцией расширения Power Table в скрипте CellEdited. Этот сценарий вводит выбор в качестве значения в базу данных.
#onCellEdited Upadte Query
row = rowIndex
col = colIndex
colName = colName
value = newValue
ndx = self.data.getValueAt(row,0)
query = "UPDATE vdk SET %s = ? WHERE ndx = ?" % colName
system.db.runPrepUpdate(query,[value,ndx],'history')
system.db.refresh(self.data)