I am wondering how this following query works. We start with an empty DB.

```
WITH [{a:1, b:null}, {a:1, b:null}] AS rows
UNWIND rows AS row
MERGE (t:Test {a:row.a, b:coalesce(row.b, 'none')}) SET t.b=row.b
```

`Added 1 label, created 1 node, set 3 properties, completed after 3 ms.`

`MATCH (t:Test) return t`

```
╒═══════╕
│"t" │
╞═══════╡
│{"a":1}│
└───────┘
```

Why does this only create one node?

I would assume the following:

- First row MERGE --> (t:Test {a:row.a, b:'none'}) does not exist
- Create node (t:Test {a:row.a, b:'none'})
- Set b = null --> now node is (t:Test {a:row.a})
- Second row MERGE --> (t:Test {a:row.a, b:'none'}) does not exist
- Create node (t:Test {a:row.a, b:'none'})
- Set b = null --> now node is (t:Test {a:row.a})
- --> At the end we have
**two**nodes (t:Test {a:row.a})

Is `coalesce`

or the `SET`

doing here something different?

Note that if I do the two rows as separate queries (one per row) then the result is exactly as I expect and describe above. If the rows are unwinded in one query it's different.