数据库select构造一条常量记录和多条常量记录
程序员文章站
2024-03-20 11:11:58
...
我们写数据库查询时,数据表里面存的数值(如订单状态),但是实际需要返回数值对应的订单状态描述,虽然在代码里面很容易转换,但是这里介绍另一种方法:直接构造多条常量记录,再关联查询
一、构造一条常量记录
- 不指定字段名,会以常量作为字段名
select '星期一','星期二','星期三','星期四','星期五','星期六','星期日';
2. 指定字段名
select '星期一' fd1,'星期二' fd2,'星期三' fd3,'星期四' fd4,'星期五' fd5,'星期六' fd6,'星期日' fd7;
二、构造多条常量记录
- 不指定字段名,会以第一条常量记录作为字段名
SELECT 1,'待支付' UNION
SELECT 2,'已支付' UNION
SELECT 3,'支付失败' UNION
SELECT 4,'待发货' UNION
SELECT 5,'待收货';
2. 指定字段名,只需要给第一条记录指定字段名
SELECT 1 Id,'待支付' Name UNION
SELECT 2,'已支付' UNION
SELECT 3,'支付失败' UNION
SELECT 4,'待发货' UNION
SELECT 5,'待收货';
也可以这样写:
SELECT t.Id,t.Name FROM (
SELECT 1 Id,'待支付' Name UNION
SELECT 2,'已支付' UNION
SELECT 3,'支付失败' UNION
SELECT 4,'待发货' UNION
SELECT 5,'待收货') t;
三、实现文章开头说的场景
SELECT DISTINCT Status,t.Name FROM (
SELECT 1 Id,'待支付' Name UNION
SELECT 2,'已支付' UNION
SELECT 3,'支付失败' UNION
SELECT 4,'待发货' UNION
SELECT 5,'待收货') t,order_detail where Status=t.Id;