# INTERSECT

Returns the row intersection of two tables, retaining duplicates.

## Syntax

```
INTERSECT(<table_expression1>, <table_expression2>)
```

### Parameters

Term | Definition |
---|---|

Table_expression | Any DAX expression that returns a table. |

## Return value

A table that contains all the rows in table_expression1 that are also in table_expression2

## Exceptions

## Remarks

Intersect is not commutative. In general, Intersect(T1, T2) will have a different result set than Intersect(T2, T1).

Duplicate rows are retained. If a row appears in table_expression1 and table_expression2, it and all duplicates in table_expression_1 are included in the result set.

The column names will match the column names in table_expression1.

The returned table has lineage based on the columns in table_expression1 , regardless of the lineage of the columns in the second table. For example, if the first column of first table_expression has lineage to the base column C1 in the model, the intersect will reduce the rows based on the intersect on first column of second table_expression and keep the lineage on base column C1 intact.

Columns are compared based on positioning, and data comparison with no type coercion.

The returned table does not include columns from tables related to table_expression1.

This function is not supported for use in DirectQuery mode when used in calculated columns or row-level security (RLS) rules.

## Example

States1

State |
---|

A |

A |

B |

B |

B |

C |

D |

D |

States2

State |
---|

B |

C |

D |

D |

D |

E |

Intersect(States1, States2)

State |
---|

B |

B |

B |

C |

D |

D |

Intersect(States2, States1)

State |
---|

B |

C |

D |

D |

D |