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

Условные выражения в 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
просмотры: 1962, уровень: лёгкий уровень, рейтинг: 5, дата: 2015-08-05 20:00:00
проголосовать:

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






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