SQLite中的空替换:

Vec*_*tor 4 t-sql sqlite null isnull

在Sybase和MSSqlServer TransactSQL中,我们有一个函数IsNull(columnName,valueForNull),当列值为null时返回一个类型化的默认值.如何在SQLite中复制此功能?

TransactSQL中的示例:

select IsNull(MyColumn,-1) as MyColumn from MyTable
Run Code Online (Sandbox Code Playgroud)

如果MyColumn为null,则此表达式将返回-1作为MyColumn的值.想在SQLite中做类似的事情.

(是的,我知道我可以编写自己的包装函数来处理这个 - 这不是我正在寻找的答案)

TIA

mu *_*ort 7

您应该使用标准的COALESCE功能:

select coalesce(MyColumn, -1) as MyColumn from MyTable
Run Code Online (Sandbox Code Playgroud)

任何理解标准ANSI SQL的数据库都将支持COALESCE,因此使用它是一个很好的习惯.


Gio*_*rgi 6

你可以使用ifnull:

select ifnull(MyColumn,-1) as MyColumn from MyTable
Run Code Online (Sandbox Code Playgroud)