голосование
BASH
PHP
Javascript
HTML
Программы
Firebird
Майнинг
PostgreSQL
Хостинг
Железо
Ресурсы
GIT
SEO
Oracle
Python
Мобильные технологии
Ремонт
Mercurial
Заработок на сайте
Docker
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Условные выражения в SQL-запросах Firebird

Условные выражения в SQL-запросах помогут вам избежать лишней обработки результатов средствами PHP. Вы можете использовать для каждого значения свои условия. Допустим у вас есть зона администратора. Имеется база данных с таблицей user. Допустим в таблице есть поле status. Поле status принимает следующие значения: user, moderator, admin, superadmin. Условные выражения помогут обработать строковые значения и вернуть из базы данных число вместо строки. Например, user = 0, moderator = 1, admin = 2. Функция UPPER() приводит значения к верхнему регистру.


# для авторизации, работа со строками
SELECT
CASE LOWER(STATUS)
    WHEN 'user' THEN 0
    WHEN 'moderator' THEN 1
    WHEN 'admin' THEN 2
	WHEN 'superadmin' THEN 3
    ELSE 4
END
FROM USER
# переименование ID в строку
SELECT NAME, 
CASE UPPER(SHOP_ID )
	WHEN 1 THEN 'one'
	WHEN 2 THEN 'two'
	ELSE UPPER('no')
END
FROM SHOP

Вы можете использовать для каждого значения свои условия. Функция LOWER() приводит значения к нижнему регистру. Я применил сортировку при помощи ORDER BY. Вы можете сортировать по нескольким параметрам. Вы просто перечислите их через запятую. Например, ORDER BY NAME, LAST_CHANGE.


# без верхнего регистра
SELECT NAME,
CASE SHOP_ID
	WHEN 1 THEN 'one'
	WHEN 2 THEN 'two'
	else LOWER('-NO-')
END
FROM SHOP
ORDER BY NAME

Вы можете переименовать поле при выводе значений. Один ключ массива будет иметь новое имя 'title'. Если вы применяете функцию LOWER, то вы можете в условиях учитывать новое начертание букв.


# условие + приведение к маленькому регистру
select 
case LOWER(NAME)
	 when 'mersedes' then 'мерседес::2015'
	 when 'audi' then 'ауди::2015'
	 else '-НЕТ-'
end as title,
SHOP_ID
from SHOP
просмотры: 2561, уровень: лёгкий уровень, рейтинг: 5, дата: 2015-08-05 20:00:00
проголосовать:

Комментарии:






поиск
реклама
банеры
Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/domains домен RU домен RU всего за 99 рублей
http://trainingweb.ru/redirect/pingadmin мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP