Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 编写一个PL/SQL块来确定服务时间最长的员工开始工作的那一周(工作日或周末)_Oracle_Plsql - Fatal编程技术网

Oracle 编写一个PL/SQL块来确定服务时间最长的员工开始工作的那一周(工作日或周末)

Oracle 编写一个PL/SQL块来确定服务时间最长的员工开始工作的那一周(工作日或周末),oracle,plsql,Oracle,Plsql,编写PL/SQL块以确定一周中的哪一部分(工作日或周末) 服务时间最长的员工开始工作如果让我猜的话,我会说这是工作日,因为绝大多数员工都不会在周末开始工作。我想我不知道有谁的第一个工作日是周六或周日 无论如何:根据Scott的EMP表,以下是数据的外观(日期格式为dd.mm.yyyy): longestCTE查找最小的hiredate,并使用英语将其“转换”为日名(以便我以后可以使用它)。最后一个查询只是检查当天的情况并显示结果 SQL> with longest as 2 (s

编写PL/SQL块以确定一周中的哪一部分(工作日或周末)
服务时间最长的员工开始工作

如果让我猜的话,我会说这是工作日,因为绝大多数员工都不会在周末开始工作。我想我不知道有谁的第一个工作日是周六或周日

无论如何:根据Scott的
EMP
表,以下是数据的外观(日期格式为
dd.mm.yyyy
):

longest
CTE查找最小的
hiredate
,并使用英语将其“转换”为日名(以便我以后可以使用它)。最后一个查询只是检查当天的情况并显示结果

SQL> with longest as
  2    (select min(hiredate) min_hiredate,
  3            to_char(min(hiredate), 'dy', 'nls_date_language=english') day
  4     from emp
  5    )
  6  select min_hiredate,
  7         day,
  8         case when day in ('sat', 'sun') then 'weekend'
  9              else 'weekday'
 10         end result
 11  from longest;

MIN_HIREDA DAY          RESULT
---------- ------------ ----------
17.12.1980 wed          weekday

SQL>

这显然是SQL。既然您已经知道了怎么做,请将其转录到PL/SQL。

您的问题是什么?欢迎来到SO社区。我们在这里帮助您解决您遇到的特定问题,但这不是一项代码编写服务。请参加考试并复习。至少,您必须发布表定义(ddl),样本数据为文本-无图像,以及该数据的预期输出,以及您尝试过的内容和您遇到的问题。
我想我不知道有哪个灵魂的第一个工作日是周六或周日。
--Lol。。但是,在大多数阿拉伯国家,周末并不一定包括星期六或星期天。查询可能需要更改,但如果您知道在那个特定的国家哪些天代表“周末”,这应该不是问题。
SQL> with longest as
  2    (select min(hiredate) min_hiredate,
  3            to_char(min(hiredate), 'dy', 'nls_date_language=english') day
  4     from emp
  5    )
  6  select min_hiredate,
  7         day,
  8         case when day in ('sat', 'sun') then 'weekend'
  9              else 'weekday'
 10         end result
 11  from longest;

MIN_HIREDA DAY          RESULT
---------- ------------ ----------
17.12.1980 wed          weekday

SQL>