我想写一个精选集,让我仅返回不同的年份(2018、2017、2016)。
我在表HISTORY中有AS_OF_DATE列。
以下是AS_OF_DATE的一些示例值:
31-05-18,
31-04-17,
31-07-16,
...
这是我尝试过的方法,但是不起作用:
SELECT CONCAT('20',DISTINCT SUBSTR(AS_OF_DATE, 7, 2) FROM HISTORY
我使用CONCAT在结果前添加20,并在第7个字符串处开始的SUBSTR加2字符串长(所以我得到18,17,16 ...)
答案 0 :(得分:2)
尝试如下
SELECT DISTINCT '20' || SUBSTR(AS_OF_DATE, 7, 2) FROM HISTORY
答案 1 :(得分:1)
通常,您可以使用extract()
或to_char()
来做到这一点:
select extract(year from as_of_date) as yyyy
或
select to_char(as_of_date, 'YYYY') as yyyy
这假设as_of_date
是一个日期,应该是这个日期。
如果要使用具有不同年份的结果集,则可以添加select distinct
。
答案 2 :(得分:0)
您可以使用
SELECT CONCAT('20', SUBSTR(AS_OF_DATE, -2) ) as "Years"
FROM HISTORY
GROUP BY SUBSTR(AS_OF_DATE, -2)
ORDER BY "Years"
答案 3 :(得分:0)
这将起作用:
select distinct extract(year from as_of_date) from History;
如果extract
函数是as_of_date
数据类型,并且date
仅针对提取中多次出现的日期选择distinct
函数,则该函数将删除$data = 'foobar';
return datatables()
->of($query)
->addColumn('Action', function() use ($data){
return view('Actions.something', compact('data'));
})
->rawColumns(['Action'])
->toJson();
。