How to get a delimited List from an executed query in ColdFusion

Introduction

In ColdFusion, managing data from databases is a common requirement, especially when you need to format it for further processing or display. One useful technique is transforming query results into a delimited list, which can simplify displaying or manipulating the data within a web application. ColdFusion’s ValueList function provides an efficient way to achieve this by extracting a single column from an executed query as a delimited list.

This tutorial explores how to use the ValueList function to retrieve a column of data from a query and output it as a list. We'll examine each step in the code example to understand how ColdFusion handles the data extraction and presentation.

Setting Up the Query

In this example, a simple SQL query is used to retrieve department information from a database. The query selects two fields, Dept_ID and Dept_Name, from the DEPARTMENTS table, using a ColdFusion <cfquery> tag. This tag is essential for executing SQL commands in ColdFusion, and it lets us interact with databases in a straightforward manner.

The database for this example is connected through the datasource named cfdocexamples. The cfquery tag is set with the name attribute, qDepartments, so that ColdFusion can reference this query’s results elsewhere in the code. Once executed, the query stores its results in a structured format that ColdFusion can easily handle.

Displaying Query Results with CFDump

To verify the query results, the code includes a <cfdump> tag immediately after the cfquery block. This tag is especially useful in development and debugging because it displays the contents of a ColdFusion variable in a human-readable format. Here, it shows the qDepartments query object, allowing us to see the retrieved data from the DEPARTMENTS table.

Using <cfdump>, developers can quickly verify that the data retrieval process is working as expected. It’s an invaluable step in ColdFusion coding, especially when working with new or complex queries.

Extracting a Delimited List Using ValueList

After confirming the query data, the ValueList function is used to create a delimited list from the Dept_Name column of the qDepartments query. ValueList is a ColdFusion function that takes a specific column from a query and returns its values as a single, comma-separated list by default. This function is ideal when you only need one column from a query result or when you need to pass a list format to another function or process.

In this example, the DepartmentList variable is created with the cfset tag, which assigns the result of ValueList(qDepartments.Dept_Name) to it. This variable now holds all department names as a comma-separated string.

Outputting the Delimited List

Finally, the code displays the delimited list on the webpage using the cfoutput tag. This tag evaluates ColdFusion variables and outputs the result directly in the HTML. By referencing DepartmentList within cfoutput, the page shows the list of department names retrieved from the database in a clean, single-line format.

Conclusion

This example demonstrates a practical use of ColdFusion’s ValueList function for handling query data. By extracting a column of data into a delimited list, you can manage query results more flexibly and efficiently. This approach is particularly useful for passing data to other components or functions that require list formats, enabling smoother data manipulation in ColdFusion applications.

The ValueList function, along with tools like cfdump for debugging, provides developers with powerful methods to simplify and streamline database interactions. This technique is a valuable addition to any ColdFusion developer’s toolkit when working with relational data.


ValueList.cfm

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ValueList Function example: how to get a delimited List from an executed query</title>
</head>

<body>
<h2 style="color:hotpink">ValueList Function Example</h2>

<cfquery name="qDepartments" datasource="cfdocexamples">
 SELECT Dept_ID, Dept_Name FROM DEPARTMENTS
</cfquery>
<cfdump var="#qDepartments#" label="Departments">
<br />
<cfset DepartmentList=ValueList(qDepartments.Dept_Name)>
<cfoutput>DepartmentList: #DepartmentList#</cfoutput>
</body>
</html>





More ColdFusion examples