如何在PostgreSQL中用select语句中的字符串值替换位

如何在PostgreSQL中用select语句中的字符串值替换位,sql,postgresql,Sql,Postgresql,如何在PostgreSQL中将SELECT语句返回的数据集中的位值替换为字符串(字,无数字)?一般来说,我对SQL非常陌生,所以我的经验和谷歌搜索并不是很丰富 在这种特殊情况下,c.visible是存储0(可见)或1(不可见)的位值。在我的查询中,我希望显示c.visible=0的所有结果,但显示“此课程对学生可见”,而不是此select语句返回的数据集中的“0”。我尝试在SELECT语句中将其转换为文本,然后在WHERE子句中的CASE WHEN语句中更改值,但这会导致无效的输入语法错误。c、

如何在PostgreSQL中将SELECT语句返回的数据集中的位值替换为字符串(字,无数字)?一般来说,我对SQL非常陌生,所以我的经验和谷歌搜索并不是很丰富

在这种特殊情况下,c.visible是存储0(可见)或1(不可见)的位值。在我的查询中,我希望显示c.visible=0的所有结果,但显示“此课程对学生可见”,而不是此select语句返回的数据集中的“0”。我尝试在SELECT语句中将其转换为文本,然后在WHERE子句中的CASE WHEN语句中更改值,但这会导致无效的输入语法错误。c、 可见性是数据库中记录此信息的唯一属性

例如:

--------------------------------------------------------
| CourseName | ID | CourseVisibility                   |
--------------------------------------------------------
|    ABC     | 10 | This course is visible to students.|
--------------------------------------------------------
|    DEF     | 22 | This course is visible to students.|
--------------------------------------------------------
选择c.fullname作为CourseName,c.id作为id,CAST(c.visible作为文本)作为CourseVisibility
来自前缀\u课程c,前缀\u日志存储\u标准\u日志lsl
哪里
c、 可见=0
c.visible='0'时的大小写
然后c.visible='这门课程对学生是可见的。'
结束
和lsl.courseid=c.id
在提取(从现在开始的历元()-间隔“12个月”)和提取(从现在开始的历元())之间创建lsl.timecreated
按c.fullname、c.id、c.visible分组
错误:整数的输入语法无效:“本课程对学生可见。”
第5行:然后c.visible='本课程对学生可见。'
^

正确的方法是什么?

您不能在
where
子句中修改返回值,但可以在
select
子句中进行修改

选择
c、 全名为CourseName,
c、 id作为id,
c.visible='0'时的大小写
然后“学生可以看到这门课。”
ELSE“学生看不到本课程。”
按课程结束
来自前缀\u课程c,前缀\u日志存储\u标准\u日志lsl
哪里
lsl.courseid=c.id
在提取(从现在开始的历元()-间隔“12个月”)和提取(从现在开始的历元())之间创建lsl.timecreated
按c.fullname、c.id、c.visible分组

您不能在
where
子句中修改返回值,但可以在
select
子句中进行修改

选择
c、 全名为CourseName,
c、 id作为id,
c.visible='0'时的大小写
然后“学生可以看到这门课。”
ELSE“学生看不到本课程。”
按课程结束
来自前缀\u课程c,前缀\u日志存储\u标准\u日志lsl
哪里
lsl.courseid=c.id
在提取(从现在开始的历元()-间隔“12个月”)和提取(从现在开始的历元())之间创建lsl.timecreated
按c.fullname、c.id、c.visible分组

不清楚您是要执行选择(检索记录)还是更新(更改某些记录中的数据)。请澄清您试图在此处执行的操作。@TimBiegeleisen,我试图检索记录,但在结果数据中将“0”显示为“此课程对学生可见”。Muhammad提供了解决方案-我应该在select子句中使用大小写。对于“可见”/“不可见”等标志,使用
布尔
列比使用
column@a_horse_with_no_name-我同意。然而,Moodle的数据库后端就是这样(一种非常流行的LMS),因此我无法改变这种w/o风险。不过,谢谢你的提醒!XMLDB在这里供感兴趣的人使用:不清楚您是要执行选择(检索记录)还是更新(更改某些记录中的数据)。请澄清您试图在此处执行的操作。@TimBiegeleisen,我试图检索记录,但在结果数据中将“0”显示为“此课程对学生可见”。Muhammad提供了解决方案-我应该在select子句中使用大小写。对于“可见”/“不可见”等标志,使用
布尔
列比使用
column@a_horse_with_no_name-我同意。然而,Moodle的数据库后端就是这样(一种非常流行的LMS),因此我无法改变这种w/o风险。不过,谢谢你的提醒!XMLDB在这里为所有感兴趣的人准备:传奇!这个做得很漂亮。谢谢你的快速回复+1解决方案古老的连接语法如何升级?图例!这个做得很漂亮。谢谢你的快速回复+1解决方案古老的联接语法如何升级?