Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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
比较SQL(或AWS QuickSight)中字符的差异_Sql_Postgresql_Amazon Web Services_Amazon Quicksight - Fatal编程技术网

比较SQL(或AWS QuickSight)中字符的差异

比较SQL(或AWS QuickSight)中字符的差异,sql,postgresql,amazon-web-services,amazon-quicksight,Sql,Postgresql,Amazon Web Services,Amazon Quicksight,我们使用的是Postgres,在我们的student表中,我们有字母等级列[A、B、C、D、F]。上一个年级和当前年级有两列。我正试图找到一种方法来报告每一项记录的成绩变化情况。因此,本质上,我需要一个字段,用于当前等级-previous等级,但由于值是文本,我无法轻松进行比较。我希望AWS QuickSight中的parseInt能够解析分数的值,但是说它忽略了非数值。既然AWS QuickSight似乎无法解决这个问题,那么当我没有写访问权限并且无法为此创建时,我将如何在SQL查询中执行此操

我们使用的是Postgres,在我们的
student
表中,我们有字母等级列[A、B、C、D、F]。上一个年级和当前年级有两列。我正试图找到一种方法来报告每一项记录的成绩变化情况。因此,本质上,我需要一个字段,用于
当前等级-previous等级
,但由于值是文本,我无法轻松进行比较。我希望AWS QuickSight中的
parseInt
能够解析分数的值,但是说它忽略了非数值。既然AWS QuickSight似乎无法解决这个问题,那么当我没有写访问权限并且无法为此创建时,我将如何在SQL查询中执行此操作?我希望得到一些简单的东西,比如:


选择id,报告卡->当前成绩为“成绩”,报告卡->以前成绩为旧成绩,旧成绩-学生当前成绩

Quicksight似乎支持
定位
,您可以根据自己的优势对其进行调整。这就好像你在给“当前成绩”和“上一个成绩”列中的成绩分配数字一样

locate('ABCDEF', current_grade) - locate('ABCDEF', previous_grade)
如果这不起作用,它们还有
ifelse
,您可以根据这些行修改它们

ifelse(current_grade="A", 1, current_grade="B", 2, ......,current_grade="F", 6) - 
ifelse(previous_grade="A", 1, previous_grade="B", 2, ......,previous_grade="F", 6)

如果你的分数中有非数值,你打算如何比较它们?你能展示一些样本数据吗?它们只是每个列的字母等级,如“a”、“B”、“C”、“D”。我只是想知道区别。有些语言会使用ASCII键并对其进行减号。例如,B-A将转换为066-065,结果为1。我在想类似的事情。谢谢。如果没有别的办法,那是我能想到的最好的解决办法。它只是感觉有点粗糙,但我认为它确实起到了作用。@Jorjani你有没有试过使用locate?locate是个有趣的主意。我试试看。