我想查找某个字符串字段不为空或空的记录,所以我只是写SELECT ... FROM myTable WHERE x,假设空字符串和空字符串将评估为false,但似乎并非如此.
字符串"02306"为真,而"N06097EIP"在某种程度上是错误的.
这是怎么回事?
编辑:我知道解决方法,我只想知道如何投射.
在这些表达式中,字符串首先转换为数字."02306"被转换为2306,其> 0并因此被考虑true,而"N06097EIP"(以非数字开始)被转换为0,其被评估为false.
比较结果:
select convert("N06097EIP",signed)
Run Code Online (Sandbox Code Playgroud)
和
select convert("02306",signed)
Run Code Online (Sandbox Code Playgroud)