如果没有if / case流,如何在SQL中返回Yes或No

时间:2017-04-27 19:47:35

标签: mysql sql if-statement enums case

除了来自SQL的IF和CASE之外,还有另一种方法可以返回"是" /" No" (在SQL中)?

编辑:是的,这是不好的做法,我不能在申请中这样做(这是一个有特定要求的学校项目)

3 个答案:

答案 0 :(得分:0)

以下是不好的做法:

您可以拥有一个包含字符串值的列"是"和"不"然后只需从该列中选择。

然后,您必须维护此列值。

更好的做法是:

有一个位列,然后在针对该列的选择中有一个case语句来返回字符串值。

答案 1 :(得分:0)

使用内联视图将0转换为'No',将1转换为'Yes',但您可以在no处停止。

SELECT yesNo.Option
FROM YourTable A
LEFT JOIN (SELECT 1 ID, 'YES' as Option UNION ALL SELECT 0, 'No') YesNo
 on A.Field1 = yesNo.ID

这假设0表示mytable的结果。

  1. Field1应该是具有0或1的列名,或者您需要翻译的任何内容
  2. yourTable应该只是有问题的表(或查询)
  3. 所有这一切都是创建一个带有硬编码翻译列表的内联视图。更好的是拥有一个翻译表并简单地使用它。

答案 2 :(得分:0)

一个好主意是在两个选项之间使用UNION,一个使用'yes',一个使用'no'。 但上面的答案就足够了。谢谢!