# CDATA Snowflake Unpivot

**URL:** <https://community.cdata.com/t/cdata-snowflake-unpivot/1004>\
**Category:** CData Drivers\
**Tags:** question, snowflake, cdata-drivers\
**Created:** [January 27, 2025, 11:14am UTC](https://community.cdata.com/t/cdata-snowflake-unpivot/1004 "2025-01-27T11:14:17Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ABJoe](https://avatars.discourse-cdn.com/v4/letter/a/49beb7/32.png) [@ABJoe](https://community.cdata.com/u/ABJoe)\
**Post date:** [January 27, 2025, 11:14am UTC](https://community.cdata.com/t/cdata-snowflake-unpivot/1004/1 "2025-01-27T11:14:19Z")

</div>

Hi,

We’re using&nbsp;CData [ADO.NET](http://ADO.NET) Provider for Snowflake 2019 [Build 7362] and&nbsp;we’re facing a problem working with UNPIVOT.

We’re targeting the Snowflake\_Sample\_Data with this command:

```sql
SELECT CC_CALL_CENTER_SK, CC_CALL_CENTER_ID, CC_CLOSED_DATE_SK, CC_OPEN_DATE_SK, Attribute, ValueFROM SNOWFLAKE_SAMPLE_DATA.TPCDS_SF100TCL.CALL_CENTERUNPIVOT ( Value FOR Attribute IN ( CC_NAME, CC_CLASS, CC_HOURS, CC_MANAGER, CC_MKT_CLASS, CC_MKT_DESC, CC_MARKET_MANAGER )) AS unpivoted_data;

```

The query is working fine on Snowflake instance but not with CDATA Snowflake driver.

We’re getting the error below:

Malformed SQL Statement: Expected token ‘)’ but found Identifier with value ‘FOR’ instead

Is UNPIVOT syntax supported for this version of CDATA?

---

<div class="post-metadata">

**Author:** ![Luçjano\_Capo](https://sea3.discourse-cdn.com/cdata/user_avatar/community.cdata.com/lu%C3%A7jano_capo/32/1638_2.png) [@Luçjano\_Capo](https://community.cdata.com/u/Lu%C3%A7jano_Capo)\
**Post date:** [January 28, 2025, 5:01pm UTC](https://community.cdata.com/t/cdata-snowflake-unpivot/1004/2 "2025-01-28T17:01:18Z")

</div>

Hi ​ @ABJoe ,

Thank you for reaching out!

The _ **UNPIVOT** _ syntax was introduced to our driver’s logic in 2022, which means that the v19 driver you are currently using does not support this functionality. To address this issue, you can either upgrade to the latest version of the driver or use an alternative SQL method to replicate the same behavior.

I conducted some tests on my end, and by using _ **UNION ALL** _,&nbsp;you can achieve the same results. The only notable difference is that the query will be longer. Please give the following query a try and let me know how it works for you (kindly make sure to make the necessary adjustments if I have missed something):

```sql
SELECT CC_CALL_CENTER_SK, CC_CALL_CENTER_ID, CC_CLOSED_DATE_SK, CC_OPEN_DATE_SK, 'CC_NAME' AS Attribute, CC_NAME AS ValueFROM SNOWFLAKE_SAMPLE_DATA.TPCDS_SF100TCL.CALL_CENTERUNION ALLSELECT CC_CALL_CENTER_SK, CC_CALL_CENTER_ID, CC_CLOSED_DATE_SK, CC_OPEN_DATE_SK, 'CC_CLASS' AS Attribute, CC_CLASS AS ValueFROM SNOWFLAKE_SAMPLE_DATA.TPCDS_SF100TCL.CALL_CENTERUNION ALLSELECT CC_CALL_CENTER_SK, CC_CALL_CENTER_ID, CC_CLOSED_DATE_SK, CC_OPEN_DATE_SK, 'CC_HOURS' AS Attribute, CC_HOURS AS ValueFROM SNOWFLAKE_SAMPLE_DATA.TPCDS_SF100TCL.CALL_CENTERUNION ALLSELECT CC_CALL_CENTER_SK, CC_CALL_CENTER_ID, CC_CLOSED_DATE_SK, CC_OPEN_DATE_SK, 'CC_MANAGER' AS Attribute, CC_MANAGER AS ValueFROM SNOWFLAKE_SAMPLE_DATA.TPCDS_SF100TCL.CALL_CENTERUNION ALLSELECT CC_CALL_CENTER_SK, CC_CALL_CENTER_ID, CC_CLOSED_DATE_SK, CC_OPEN_DATE_SK, 'CC_MKT_CLASS' AS Attribute, CC_MKT_CLASS AS ValueFROM SNOWFLAKE_SAMPLE_DATA.TPCDS_SF100TCL.CALL_CENTERUNION ALLSELECT CC_CALL_CENTER_SK, CC_CALL_CENTER_ID, CC_CLOSED_DATE_SK, CC_OPEN_DATE_SK, 'CC_MKT_DESC' AS Attribute, CC_MKT_DESC AS ValueFROM SNOWFLAKE_SAMPLE_DATA.TPCDS_SF100TCL.CALL_CENTERUNION ALLSELECT CC_CALL_CENTER_SK, CC_CALL_CENTER_ID, CC_CLOSED_DATE_SK, CC_OPEN_DATE_SK, 'CC_MARKET_MANAGER' AS Attribute, CC_MARKET_MANAGER AS ValueFROM SNOWFLAKE_SAMPLE_DATA.TPCDS_SF100TCL.CALL_CENTERORDER BY CC_CALL_CENTER_ID;

```
