我有一个名为datatype的字段,我正在尝试过滤。如果该值等于LOINC,那么我想要一个1,如果它不等于LOINC那么我想要一个零。我遇到的挑战是,有时LOINC这个词在它的末尾有一个额外的空间。由于我正在进行此检查以评估文件的有效性,如果有单词LOINC然后是空格,我需要它来输出错误。
当我尝试将其写为
when Datatype = 'LOINC' then 1 else 0 end as Test1
对于LOINC在其末尾有额外空格且LOINC没有空格的情况,它返回了1。 LOINC是我所看到的众多价值中的一个,我可以通过添加不同的验证过程来解决这个问题,但如果我能避免它,我宁愿不这样做。
答案 0 :(得分:0)
标准SQL忽略尾随空白以进行比较。在大多数情况下,您只需切换到iframe
(不会忽略尾随空白):
LIKE
答案 1 :(得分:0)
RTRIM(str) - RTRIM删除字符串末尾的所有空格。 选择TRIM('上帝');输出将='上帝' TRIM - 它删除LEADING,TRAILING或BOTH白色空格。 在您的情况下,查询应该是
when RTRIM(Datatype) = 'LOINC' then 1 else 0 end as Test1
但我建议修剪,因为它将从前导和尾随
中删除空格when TRIM(Datatype) = 'LOINC' then 1 else 0 end as Test1