# dynamic column names

**URL:** https://forum.kx.com/t/dynamic-column-names/8242
**Category:** Community Support
**Tags:** kdb-and-q
**Created:** [May 6, 2013, 2:15am UTC](https://forum.kx.com/t/dynamic-column-names/8242 "2013-05-06T02:15:00Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![raytork](https://avatars.discourse-cdn.com/v4/letter/r/e0b2c6/32.png) [@raytork](https://forum.kx.com/u/raytork)
#### Post date: [May 6, 2013, 2:15am UTC](https://forum.kx.com/t/dynamic-column-names/8242/1 "2013-05-06T02:15:00Z")

</div>

In SQL, you can rename columns in a query dynamically using [as “my column”]. I want to be able to pass in a column name to a function which does a select and have the resulting table use the names passed in. How can this be accomplished in q?

Thanks,  
–Ray

---

<div class="post-metadata">

### Author: ![carfield1](https://avatars.discourse-cdn.com/v4/letter/c/ba8739/32.png) [@carfield1](https://forum.kx.com/u/carfield1)
#### Post date: [May 6, 2013, 2:21am UTC](https://forum.kx.com/t/dynamic-column-names/8242/2 "2013-05-06T02:21:00Z")

</div>

Select newname: oldname from table

Work for you?

---

<div class="post-metadata">

### Author: ![rory\_ororke](https://avatars.discourse-cdn.com/v4/letter/r/49beb7/32.png) [@rory\_ororke](https://forum.kx.com/u/rory_ororke)
#### Post date: [May 6, 2013, 2:42am UTC](https://forum.kx.com/t/dynamic-column-names/8242/3 "2013-05-06T02:42:00Z")

</div>

Hi,  
You can achieve all this using functional select.

http://code.kx.com/wiki/JB:QforMortals2/queries\_q\_sql#Functional\_select

Thanks Rory

---

<div class="post-metadata">

### Author: ![wp1](https://avatars.discourse-cdn.com/v4/letter/w/db5fbb/32.png) [@wp1](https://forum.kx.com/u/wp1)
#### Post date: [May 6, 2013, 9:00am UTC](https://forum.kx.com/t/dynamic-column-names/8242/4 "2013-05-06T09:00:00Z")

</div>

there is also xcol, which allows column renaming:

f:{[cs] cs xcol select … from t }?

---

<div class="post-metadata">

### Author: ![raytork](https://avatars.discourse-cdn.com/v4/letter/r/e0b2c6/32.png) [@raytork](https://forum.kx.com/u/raytork)
#### Post date: [May 6, 2013, 10:53am UTC](https://forum.kx.com/t/dynamic-column-names/8242/5 "2013-05-06T10:53:00Z")

</div>

Thanks very much, xcol will work fine, I should have seen that myself.

---

<div class="post-metadata">

### Author: ![vks2106](https://avatars.discourse-cdn.com/v4/letter/v/ac91a4/32.png) [@vks2106](https://forum.kx.com/u/vks2106)
#### Post date: [July 3, 2013, 10:36am UTC](https://forum.kx.com/t/dynamic-column-names/8242/6 "2013-07-03T10:36:00Z")

</div>

q)getcol:{ c:“,” sv string (),x; value 0N!“select “,c,” from tab”}  
q)getcol `col1`col2

---

<div class="post-metadata">

### Author: ![charlie1](https://avatars.discourse-cdn.com/v4/letter/c/ec9cab/32.png) [@charlie1](https://forum.kx.com/u/charlie1)
#### Post date: [July 3, 2013, 10:41am UTC](https://forum.kx.com/t/dynamic-column-names/8242/7 "2013-07-03T10:41:00Z")

</div>

watch out with that one - it will work only for tab as a global.

q)getcol:{ c:“,” sv string (),x; value 0N!“select “,c,” from t”}

q){t:(a:til 5);getcol `a}

“select a from t”

{c:“,” sv string (),x; value 0N!“select “,c,” from t”}

't

.:

“select a from t”

q))

functional select is preferred for this kind of task.
