diff --git a/content/feed/full-table-search/full-table-search.jpeg b/content/feed/full-table-search/full-table-search.jpeg new file mode 100644 index 0000000..ff5e2a4 Binary files /dev/null and b/content/feed/full-table-search/full-table-search.jpeg differ diff --git a/content/feed/full-table-search/index.md b/content/feed/full-table-search/index.md new file mode 100644 index 0000000..f42f577 --- /dev/null +++ b/content/feed/full-table-search/index.md @@ -0,0 +1,63 @@ +--- +title: 'Full Table Search: Find Any Value in Any Table' +description: Type a value into the search box and Data Controller scans every column for it - no query, no WHERE clause. Demonstrated on a one million row CAS table. +date: '2026-09-15 17:00:00' +author: 'Data Controller' +authorLink: https://www.linkedin.com/showcase/data-controller-for-sas +tags: + - Announcements +previewImg: './full-table-search.jpeg' +--- + +# Full Table Search: Find Any Value in Any Table + +Finding a value in a large table usually means writing a query first: guess which column it lives in, write a WHERE clause, run it, and try again when you guess wrong. Data Controller's **full table search** removes that step. Choose a library and table in the Viewer, type a value into the search box and press Enter - every column in the table is scanned for it, and the matching rows come straight back into the grid. + +## How it works + +The search box sits in the Viewer toolbar, next to a **Numeric** checkbox: + +- **Text search** matches part of a value, so `smith` finds `Smithson` and `Goldsmith`. The comparison is case sensitive, using the SASĀ® `CONTAINS` operator. +- **Numeric search** (tick the box) matches the number exactly against every numeric column in the table. + +Whichever you use, the results are ordinary rows in the Viewer, with the rest of the screen behaving exactly as it does for a normal view. + +## Any database, not just SAS datasets + +The scan runs inside SAS, against whichever libname engine the table is assigned to - so it is not limited to SAS datasets. The demonstration below is a **one million row CAS table**. + +## Built on open source + +This feature, like most of Data Controller, is built on the [SASjs Macro Core](https://github.com/sasjs/core) library, using the [`%mp_searchdata()`](https://core.sasjs.io/mp__searchdata_8sas.html) macro. The macro assembles a single DATA step with one `OR` clause per column - a `CONTAINS` test for character columns, an equality test for numeric ones - and writes out only the matching records. It is MIT licensed, so you can read, test and audit the code that is running against your data. + +A few things worth knowing: + +- The search respects your current filter, Row Level Security and Column Level Security - it scans the view you are entitled to see, not the raw table. +- Full table search is available in ViewBoxes as well, so the related tables lined up beside your main grid can be searched the same way. +- Nothing is shipped to an external index or search service: the scan happens on your own SAS platform. + +See it in action: + + + +More detail in the [Viewer documentation](https://docs.datacontroller.io/dcu-tableviewer/). + + + +