在 Oracle 中反转数字 SQL
Reversing numbers in Oracle SQL
我正在想办法使第二个 s_pin
returns 的内容相反。所以"Coded Pin"
需要反过来s_pin
。
SELECT s_last||', '|| s_first||LPAD(ROUND(MONTHS_BETWEEN(SYSDATE, s_dob)/12,0),22,'*' ) AS "Student Name and Age", s_pin AS "Pin", Reverse(s_pin) AS "Coded Pin"
FROM student
ORDER BY s_last;
输出将如下所示:
TO_NUMBER (REVERSE( '' || s_pin)) AS "Coded Pin"
应该适合你。如果不需要用Coded Pin计算,可以省略TO_NUMBER
函数
的文档
p.s. 根据评论:请注意,使用 TO_CHAR (s_pin)
是更好的选择。谢谢!
您已经在使用 Oracle 支持的 REVERSE()
函数,但它仅适用于字符串,因此只需先将 s_pin
值转换为字符串即可:
SELECT s_last||', '|| s_first||LPAD(ROUND(MONTHS_BETWEEN(SYSDATE, s_dob)/12,0),22,'*' ) AS "Student Name and Age"
, s_pin AS "Pin"
, REVERSE(TO_CHAR(s_pin)) AS "Coded Pin"
FROM student
ORDER BY s_last;
Oracle 的 reverse
函数接受 char
,而不是 number
,因此您必须转换它:
SELECT s_last||', '|| s_first||LPAD(ROUND(MONTHS_BETWEEN(SYSDATE, s_dob)/12,0),22,'*' ) AS "Student Name and Age",
s_pin AS "Pin",
REVERSE(TO_CHAR(s_pin)) AS "Coded Pin"
FROM student
ORDER BY s_last;
注意 REVERSE
是一个未记录的函数。如果您在您的应用程序中使用它,您将来可能会有风险,"IF" 此功能在您希望升级到的更高版本中被删除。而且很可能他们将来最终会被记录在案,谁知道呢。因此,使用它需要您自担风险。
我正在想办法使第二个 s_pin
returns 的内容相反。所以"Coded Pin"
需要反过来s_pin
。
SELECT s_last||', '|| s_first||LPAD(ROUND(MONTHS_BETWEEN(SYSDATE, s_dob)/12,0),22,'*' ) AS "Student Name and Age", s_pin AS "Pin", Reverse(s_pin) AS "Coded Pin"
FROM student
ORDER BY s_last;
输出将如下所示:
TO_NUMBER (REVERSE( '' || s_pin)) AS "Coded Pin"
应该适合你。如果不需要用Coded Pin计算,可以省略TO_NUMBER
函数
p.s. 根据评论:请注意,使用 TO_CHAR (s_pin)
是更好的选择。谢谢!
您已经在使用 Oracle 支持的 REVERSE()
函数,但它仅适用于字符串,因此只需先将 s_pin
值转换为字符串即可:
SELECT s_last||', '|| s_first||LPAD(ROUND(MONTHS_BETWEEN(SYSDATE, s_dob)/12,0),22,'*' ) AS "Student Name and Age"
, s_pin AS "Pin"
, REVERSE(TO_CHAR(s_pin)) AS "Coded Pin"
FROM student
ORDER BY s_last;
Oracle 的 reverse
函数接受 char
,而不是 number
,因此您必须转换它:
SELECT s_last||', '|| s_first||LPAD(ROUND(MONTHS_BETWEEN(SYSDATE, s_dob)/12,0),22,'*' ) AS "Student Name and Age",
s_pin AS "Pin",
REVERSE(TO_CHAR(s_pin)) AS "Coded Pin"
FROM student
ORDER BY s_last;
注意 REVERSE
是一个未记录的函数。如果您在您的应用程序中使用它,您将来可能会有风险,"IF" 此功能在您希望升级到的更高版本中被删除。而且很可能他们将来最终会被记录在案,谁知道呢。因此,使用它需要您自担风险。