我有这个问题。
SELECT R.ID, R.DESCRIZIONE
FROM AA_V_ATS_RICHIESTE R
ORDER BY R.FILESTATEID
FileStateID的值为:
我想选择的顺序是这样的:
首先是FileStateID = 200的记录 那么FileStateID = 140的记录 那么FileStateID = 5的记录 .. ..
如何使用此模式订购我的选择?
答案 0 :(得分:1)
创建一个您订购它们的列,然后在order by子句中使用它,
像这样的东西:
SELECT R.ID, R.DESCRIZIONE,
Case
when R.FileStateID = 200 then 1,
when R.FileStateID = 140 then 2,
when R.FileStateID = 5 then 3,
when R.FileStateID = 160 then 4
ELSE 0 END AS order_
FROM AA_V_ATS_RICHIESTE R
ORDER BY order_
答案 1 :(得分:0)
如果您不想在ORDER BY clause
中对订单序列进行硬编码,则可以使用一个表来定义每个FileStatID的订单序列。那么你的查询就是
SELECT R.ID, R.DESCRIZIONE
FROM AA_V_ATS_RICHIESTE R
INNER JOIN FILESTAT F ON R.FILESTATEID = F.FILESTATEID
ORDER BY F.SEQ_NO
答案 2 :(得分:0)
试试这个:
import { NextFunction } from 'express';
import { Schema, model } from 'mongoose';
class BookSchema {
private bookSchema: Schema;
constructor() {
this.setSchema();
}
public getBookSchema(): Schema {
return this.bookSchema;
}
private setSchema() {
this.bookSchema = new Schema({
createdAt: Date,
title: String,
author: String
}).pre('save', (next: NextFunction) => this.preSave(next));
}
private preSave(next: NextFunction) {
if(!this.bookSchema.get('createdAt'))
this.bookSchema.set('createdAt', new Date);
next();
}
}
const book = new BookSchema;
export const Books = model('Books', book.getBookSchema());