# Columns

> Columns decide what each record in a table stores. Learn how to add, edit, convert, reorder, and delete columns, and which type to pick.

A column is one field on a table. Every record in the table has a value for it. The column's type decides what you can store, how people enter it, how you can filter and sort it, and which views can use it. A Date column powers a calendar, a Location column powers a map, and a Status column can drive a kanban board.

In some menus SAPUGO calls a column a **property**, for example **Edit property** and **Delete property**. Both words mean the same thing.

## Add a column

1. Open the table and click the **+** button at the right end of the column headers.
2. Type a name in **Column Name**.
3. Pick a type. You can search by name or browse the categories.
4. Fill in the settings the type needs. A few types need some setup before you can create them: a Relation needs a view to pick records from, a Single Select or Multi Select needs at least one option, a Status needs at least one state, and a Formula needs an expression and a return type.
5. Click **Create Column**, or press `Cmd` + `Enter` (`Ctrl` + `Enter` on Windows).

Click **Add description** to explain what the column is for. Click **Show advanced options** to see every setting for the type, plus these general options:

| Setting | What it does |
| --- | --- |
| **Field Name** | The column's internal name. It is generated from the column name, so "Unit Price" becomes `unit_price`. Formulas refer to columns by this name. |
| **Required Field** | A record can't be saved without a value in this column. |
| **Unique Values** | No two records can have the same value in this column. |
| **Allow Sorting** | Lets people sort views by this column. |

> **Note:** The Field Name can't be changed after the column is created. You can rename the column itself at any time.

## Edit a column

Click a column header to open its menu. From there you can:

- Rename the column, or pick a **Property icon** for its header.
- Change its **Type** (see [Change a column's type](#change-a-columns-type)).
- Add a **Filter**, or **Sort ascending** and **Sort descending** in the current view.
- **Freeze up to this field** so the columns up to this one stay visible while you scroll sideways.
- **Hide in view**, **Duplicate property**, or **Delete property**.
- Open **Edit property** for the full settings of the column, including its **Change History**.

## Reorder and hide columns

Drag a column header left or right to move it. To hide a column from the view you are looking at, choose **Hide in view** from its header menu.

Hiding a column in a view only changes what that view shows. To control who can see or edit a column, use [base views](/docs/base-views). A base view can hide a column or make it read-only. A view built on top of it can hide more, but it can't bring back a column the base view hid.

## Change a column's type

Open the column's header menu and click **Type**. SAPUGO only lists the types the column can be converted to. Before anything changes, it checks the existing values and shows how many rows can be converted, how many can't, and a few sample values that would fail. You can then convert and clear the rows that fail, or cancel and fix those values first.

| From | Can become |
| --- | --- |
| Text | Email, Phone, URL, Date, Number, Checkbox, Single Select, Multi Select |
| Email, Phone, URL, Date, Number, Checkbox | Text |
| Single Select | Text, Multi Select, Status |
| Multi Select | Single Select |
| Status | Single Select, Text |
| Relation | Text |

Some things to know:

- Converting Text to Single Select or Multi Select creates one option for each different value already in the column. A column with more than 200 different values can't be converted.
- Converting Text to Multi Select keeps each whole value as one choice. It does not split text on commas.
- Converting a Relation to Text stores the linked record's ID as text. The column stops linking to the other table.
- Type conversion isn't available on tables with 1,000,000 or more rows.
- If the column is required, rows that can't be converted can't be cleared automatically. Make the column optional first, or fix the values.
- Changing the type can remove filters that no longer fit the new type.

Other types, such as Formula, Rollup, or Files, can't be converted. Create a new column instead.

## Delete a column

Choose **Delete property** from the header menu and type the column's name to confirm. This permanently removes the column and all of its data from the table, and can't be undone.

If the column is still used elsewhere, for example in a formula, a rollup, or a business rule, SAPUGO lists those places and won't delete it until you remove the references.

## Column types

The type picker groups types into the same categories shown below.

### Text

  - [Text](/docs/columns/text): Names, codes, and notes, on one line or several.
  - [Rich Text](/docs/columns/rich-text): Formatted content with headings, lists, images, and tables.
  - [Page](/docs/columns/page): A full document on each record, with a title, icon, and cover.
  - [Icon](/docs/columns/icon): An icon or emoji that makes each record easy to recognize.
  - [Files](/docs/columns/files): Uploaded files such as photos, contracts, and drawings.

### Logic and choice

  - [Checkbox](/docs/columns/checkbox): A yes or no value.
  - [Single Select](/docs/columns/single-select): One choice from a list you define.
  - [Multi Select](/docs/columns/multi-select): Any number of choices from a list, like tags.
  - [Status](/docs/columns/status): A lifecycle stage that reports and boards understand.

### Numbers, dates, and people

  - [Number](/docs/columns/number): Quantities, money, percentages, durations, and ratings.
  - [Date](/docs/columns/date): Dates, times, months, years, and quarters.
  - [Person](/docs/columns/person): One or more members of your organization.

### Contact and location

  - [Email](/docs/columns/email): An email address, checked as you type.
  - [Phone](/docs/columns/phone): A phone number.
  - [URL](/docs/columns/url): A clickable web link.
  - [Location](/docs/columns/geo-point): A point on a map, used by map views and distance filters.

### Relationships and calculations

  - [Relation](/docs/columns/relation): Links to records in another table.
  - [Rollup](/docs/columns/rollup): A count, sum, average, or list of values from linked records.
  - [Formula](/docs/columns/formula): A value calculated from other columns on the same record.

### System

  - [ID](/docs/columns/id): A readable number for each record, like INV-1042.
  - [System](/docs/columns/audit): Who created or last changed a record, and when.

## Which type should I use?

| You need | Use |
| --- | --- |
| A name, a code, or a note | [Text](/docs/columns/text) |
| A formatted note that stays a field on the record | [Rich Text](/docs/columns/rich-text) |
| A full document that belongs to one record | [Page](/docs/columns/page) |
| Yes or no | [Checkbox](/docs/columns/checkbox) |
| One category, with no lifecycle | [Single Select](/docs/columns/single-select) |
| Several tags | [Multi Select](/docs/columns/multi-select) |
| A lifecycle you will track on a board or in reports | [Status](/docs/columns/status) |
| A quantity, amount of money, percentage, duration, or rating | [Number](/docs/columns/number) |
| A date or time | [Date](/docs/columns/date) |
| A member of your organization | [Person](/docs/columns/person) |
| An email address, phone number, or link | [Email](/docs/columns/email), [Phone](/docs/columns/phone), [URL](/docs/columns/url) |
| An icon on the record | [Icon](/docs/columns/icon) |
| Uploaded files | [Files](/docs/columns/files) |
| A place on a map | [Location](/docs/columns/geo-point) |
| A link to records in another table | [Relation](/docs/columns/relation) |
| A total or count from linked records | [Rollup](/docs/columns/rollup) |
| A value calculated from the same record | [Formula](/docs/columns/formula) |
| A readable record number | [ID](/docs/columns/id) |
| Who changed a record, and when | [System](/docs/columns/audit) |

## How columns work with the rest of SAPUGO

- A [kanban view](/docs/views/kanban) groups records by a Status, Single Select, or Text column.
- A [calendar view](/docs/views/calendar) needs a Date column. A [map view](/docs/views/map) needs a Location column.
- A Formula reads other columns on the same record and keeps its result up to date.
- A Rollup reads records reached through a Relation and is calculated each time the record is shown.
- A [computation rule](/docs/business-rules/computation) writes a value into a column when a record is saved, and can look at other tables.
- Files, Page, and Rich Text columns can each appear as their own panel on the [record page](/docs/views/record-page).

## Older column types

Some types were merged into others and are no longer offered when you create a column: **Single Line Text**, **Multi Line Text**, **Currency**, **Percent**, **Duration**, **Rating**, **User**, **Multiple Users**, and **Link to Multiple Records**. Existing columns of these types keep working. For new columns, use the type that replaced them:

| Older type | Use instead |
| --- | --- |
| Single Line Text, Multi Line Text | Text, with **Allow multiple lines** on or off |
| Percent, Duration, Rating | Number, with that format |
| Currency | Number with the Currency format for amounts, or a Single Select with the currency codes list for the code itself |
| User, Multiple Users | Person |
| Link to Multiple Records | Relation, with **Allow multiple records** on |

## Time series tables

[Time series tables](/docs/tables) are built for high-volume readings that are only ever added, never edited. These column types can't be added to them: Formula, Rich Text, Page, ID, Files, Location, and the Relation type that lists records linking in from another table.

---

Source: https://community.sapugo.app/docs/columns
