欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据库select构造一条常量记录和多条常量记录

程序员文章站 2024-03-20 11:11:58
...

我们写数据库查询时,数据表里面存的数值(如订单状态),但是实际需要返回数值对应的订单状态描述,虽然在代码里面很容易转换,但是这里介绍另一种方法:直接构造多条常量记录,再关联查询

一、构造一条常量记录

  1. 不指定字段名,会以常量作为字段名
select '星期一','星期二','星期三','星期四','星期五','星期六','星期日';

数据库select构造一条常量记录和多条常量记录
2. 指定字段名

select '星期一' fd1,'星期二' fd2,'星期三' fd3,'星期四' fd4,'星期五' fd5,'星期六' fd6,'星期日' fd7;

数据库select构造一条常量记录和多条常量记录

二、构造多条常量记录

  1. 不指定字段名,会以第一条常量记录作为字段名
SELECT 1,'待支付' UNION 
SELECT 2,'已支付' UNION 
SELECT 3,'支付失败' UNION 
SELECT 4,'待发货' UNION 
SELECT 5,'待收货';

数据库select构造一条常量记录和多条常量记录
2. 指定字段名,只需要给第一条记录指定字段名

SELECT 1 Id,'待支付' Name UNION 
SELECT 2,'已支付' UNION 
SELECT 3,'支付失败' UNION 
SELECT 4,'待发货' UNION 
SELECT 5,'待收货';

数据库select构造一条常量记录和多条常量记录
也可以这样写:

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;

数据库select构造一条常量记录和多条常量记录

相关标签: 数据库 sql