在我的Web应用程序中,以下缩写允许我输入值并在应用程序中选择其类型,例如:input
在这种情况下,我创建了一个变量:grades
作为varchar(您将理解为什么选择它为varchar)
老师想知道谁获得2或3年级,甚至更高的分数
例如2,3-她想知道谁的成绩为2,谁的成绩为3
所以我制作了以下代码来做到这一点!
where gc.idx in (cast(regexp_split_to_table(:grades, ',')) as integer)
这显然行不通,我认为那是因为这会拆分为一个表而不是一个字符串。如何使该表达式起作用?
答案 0 :(得分:1)
请勿拆分为表格,将其转换为数组,并在数组中使用= any
运算符。
where gc.idx = any (string_to_array(:grades, ',')::int[])
如果出于某种奇怪的原因,您的“网络应用”不允许使用::int[]
表示法,则可以使用cast()
表达式:
where gc.idx = any (cast(string_to_array(:grades, ',') as int[])