# Selector Methods

Selector methods in dbt allow you to filter resources based on specific properties using the `method:value` syntax. This gives you the power to target exactly what you need during your data transformations.

<figure><img src="/files/fkgk4REwCmIARJ8lexa6" alt=""><figcaption></figcaption></figure>

### Wildcard Magic

Most selector methods support Unix-style wildcards, which can help you target a broader set of resources:

* `*`: Matches any number of characters (including none)
* `?`: Matches any single character
* `[abc]`: Matches one character listed in the bracket
* `[a-z]`: Matches one character from the specified range in the bracket

For example:

```bash
dbt list --select "*.folder_name.*"
dbt list --select "model_[a-z].sql"
```

### The Selectors

#### Tag Selector

Use `tag:` to select models with a specific tag.

```bash
dbt run --select "tag:hourly"
```

#### Source Selector

Use `source:` to select models that reference a specified source.

```bash
dbt run --select "source:fivetran+"
```

#### Resource Type Selector

Use `resource_type:` to select nodes of a specific type (e.g., model, test, exposure).

```bash
dbt run --select "resource_type:exposure"
dbt list --select "resource_type:test"
```

#### Path Selector

Use `path:` to select models/sources defined at or under a specific path.

```bash
dbt run --select "path:models/marts"
dbt run --select "path:models/marts/customers.sql"
```

#### File Selector

Use `file:` to select a model by filename.

```bash
dbt run --select "file:model_name.sql"
```

#### FQN (Fully Qualified Name) Selector

Use `fqn:` to select nodes based on their fully qualified name.

```bash
dbt run --select "fqn:example_model"
dbt run --select "fqn:project_name.example_path.example_model"
```

#### Package Selector

Use `package:` to select models defined within the root project or an installed dbt package.

```bash
dbt run --select "package:fivetran"
```

#### Config Selector

Use `config:` to select models that match a specified node config.

```bash
dbt run --select "config.materialized:table"
dbt run --select "config.cluster_by:zip_code"
```

#### Test Type Selector

Use `test_type:` to select tests based on type (generic, singular, unit, data).

```bash
dbt test --select "test_type:generic"
dbt test --select "test_type:singular"
```

#### Test Name Selector

Use `test_name:` to select tests based on the name of the test defined.

```bash
dbt test --select "test_name:not_null"
```

#### State Selector

Use `state:` to select nodes by comparing them against a previous version of the project.

```bash
dbt test --select "state:new" --state path/to/artifacts
dbt run --select "state:modified" --state path/to/artifacts
```

#### Exposure Selector

Use `exposure:` to select the parent resources of an exposure.

```bash
dbt test --select "exposure:monthly_reports"
dbt run --select "+exposure:*"
```

#### Metric Selector

Use `metric:` to select parent resources of a metric.

```bash
dbt run --select "+metric:monthly_qualified_leads"
```

#### Results Selector

Use `result:` to select resources based on their results status from a previous execution.

```bash
dbt run --select "result:success" --state path/to/project/artifacts
dbt test --select "result:warn" --state /path/to/project/artifacts
```

#### Source Status Selector

Use `source_status:` to select based on the freshness of sources.

```bash
dbt source freshness
dbt build --select "source_status:fresher+" --state path/to/prod/artifacts
```

#### Group Selector

Use `group:` to select models defined within a specified group.

```bash
dbt run --select "group:marketing"
```

#### Access Selector

Use `access:` to select models based on their access property.

```bash
dbt list --select "access:public"
```

#### Version Selector

Use `version:` to select versioned models.

```bash
dbt list --select "version:old"
dbt list --select "version:latest"
```

#### Semantic Model Selector

Use `semantic_model:` to select semantic models.

```bash
dbt ls --select "semantic_model:sales"
```

#### Saved Query Selector

Use `saved_query:` to select saved queries.

```bash
dbt list --select "saved_query:*"
```

#### Unit Test Selector

Use `unit_test:` to select dbt unit tests.

```bash
dbt list --select "unit_test:*"
```

### Pro Tips

* Combine selectors for laser-focused selection:

```bash
dbt run --select "tag:nightly,config.materialized:table"
```

* Use graph operators like `+` and `@` for complex selections:

```bash
dbt run --select "source:raw_data+,@tag:critical"
```

* Exclude models using the `--exclude` flag:

```bash
dbt run --select "path:models/mart" --exclude "tag:deprecated"
```

* If you omit the method, dbt will default to one of `path`, `file`, or `fqn`.

Remember, the more targeted your selector methods, the more precisely you can execute your dbt transformations.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.paradime.io/app-help/concepts/dbt-fundamentals/running-dbt/mastering-the-dbt-cli/selector-methods.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
