将 CONCAT 与 SUBSTR 结合使用
Using CONCAT in combination with SUBSTR
我想写一个 select,它只会 return 我不同的年份(2018、2017、2016)。
我在 table 历史记录中有 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,并使用 SUBSTR 从第 7 个字符串开始,长度为 2 个字符串(所以我得到 18,17,16...)
试试下面的方法
SELECT DISTINCT '20' || SUBSTR(AS_OF_DATE, 7, 2) FROM HISTORY
您可以使用
SELECT CONCAT('20', SUBSTR(AS_OF_DATE, -2) ) as "Years"
FROM HISTORY
GROUP BY SUBSTR(AS_OF_DATE, -2)
ORDER BY "Years"
通常,您会使用 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
。
这会起作用:
select distinct extract(year from as_of_date) from History;
extract
函数取消了 as_of_date
,前提是它是 date
数据类型,而 distinct
select 只有一个日期在该提取物。
我想写一个 select,它只会 return 我不同的年份(2018、2017、2016)。
我在 table 历史记录中有 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,并使用 SUBSTR 从第 7 个字符串开始,长度为 2 个字符串(所以我得到 18,17,16...)
试试下面的方法
SELECT DISTINCT '20' || SUBSTR(AS_OF_DATE, 7, 2) FROM HISTORY
您可以使用
SELECT CONCAT('20', SUBSTR(AS_OF_DATE, -2) ) as "Years"
FROM HISTORY
GROUP BY SUBSTR(AS_OF_DATE, -2)
ORDER BY "Years"
通常,您会使用 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
。
这会起作用:
select distinct extract(year from as_of_date) from History;
extract
函数取消了 as_of_date
,前提是它是 date
数据类型,而 distinct
select 只有一个日期在该提取物。