来自 table 的 PLSQL 计算和 month_between
PLSQL calculation and month_between from a table
我在创建匿名 PL/SQL 代码时遇到问题,该代码应该从 table。我遇到问题的部分是年龄。这是我到目前为止想出的:
set serveroutput on
declare cursor
car_owner is select firstN, lastN, trunc(months_between(date '2004-09-01', to_date('19' || substr(pnr, 1,6), 'yyyymmdd')))/12
from carowners;
b_first carowners.firstN%type;
b_last carowners.lastN%type;
age number (3,1);
begin
if not car_owner%isopen
then open car_owner;
end if;
loop
fetch car_owner into b_first, b_last, age;
exit when car_owner%notfound;
dbms_output.put_line (initcap(b_first || ', ' || b_last) || ', ' || age ||' years old');
end loop;
close car_owner;
end;
我得到的输出是这样的:
瓦尔格马丁,55.4 岁
肯尼,格林,50.6 岁
Tony, Zawicki, 39 岁
Shawon, Hassan, 33.3 岁
诺维奇萨德克,35.4岁
简·罗伯茨,45.3 岁
特里·麦克菲尔德,43.4 岁
Malice, Vanzi, 23.4岁
我要找的是这样的输出:
Martin, Varg, 55,6 岁
肯尼,格林,50,7 岁
Tony, Zawicki, 39,1岁
Shawon, Hassan, 33,4岁
Sadek, Nowicki, 35,6岁
简·罗伯茨,45,5 岁
特里·麦克菲尔德,43,6 岁
Malice, Vanzi, 23,5岁
注意我需要一个逗号和正确的小数...
感谢所有的建议和帮助!
您可以使用国际化将小数点设置为逗号。在文档中开始here。
但是,对于一次性解决方案,我只需将 age
替换为:
trim(replace(to_char(age, '999.9'), '.', ','))
我在创建匿名 PL/SQL 代码时遇到问题,该代码应该从 table。我遇到问题的部分是年龄。这是我到目前为止想出的:
set serveroutput on
declare cursor
car_owner is select firstN, lastN, trunc(months_between(date '2004-09-01', to_date('19' || substr(pnr, 1,6), 'yyyymmdd')))/12
from carowners;
b_first carowners.firstN%type;
b_last carowners.lastN%type;
age number (3,1);
begin
if not car_owner%isopen
then open car_owner;
end if;
loop
fetch car_owner into b_first, b_last, age;
exit when car_owner%notfound;
dbms_output.put_line (initcap(b_first || ', ' || b_last) || ', ' || age ||' years old');
end loop;
close car_owner;
end;
我得到的输出是这样的:
瓦尔格马丁,55.4 岁
肯尼,格林,50.6 岁
Tony, Zawicki, 39 岁
Shawon, Hassan, 33.3 岁
诺维奇萨德克,35.4岁
简·罗伯茨,45.3 岁
特里·麦克菲尔德,43.4 岁
Malice, Vanzi, 23.4岁
我要找的是这样的输出:
Martin, Varg, 55,6 岁
肯尼,格林,50,7 岁
Tony, Zawicki, 39,1岁
Shawon, Hassan, 33,4岁
Sadek, Nowicki, 35,6岁
简·罗伯茨,45,5 岁
特里·麦克菲尔德,43,6 岁
Malice, Vanzi, 23,5岁
注意我需要一个逗号和正确的小数...
感谢所有的建议和帮助!
您可以使用国际化将小数点设置为逗号。在文档中开始here。
但是,对于一次性解决方案,我只需将 age
替换为:
trim(replace(to_char(age, '999.9'), '.', ','))