bbesase
bbesase

Reputation: 861

Casting columns in SQL with joins

I have this large and confusing sql query I'm trying to run, however some of the columns need to be casted as different types. Here is my query as of now:

SELECT PROPERTY_DATA.PROPERTYTYPEID, PROPERTY_DATA.PROPERTYGROUPID, PROPERTY_DATA.PROPERTYVALUE, TEMPLATE_PROPERTYUNITS.PROPERTYGROUPID
FROM PROPERTY_DATA
INNER JOIN TEMPLATE_PROPERTYGROUPS
  ON PROPERTY_DATA.PROPERTYGROUPID = TEMPLATE_PROPERTYGROUPS.PROPERTYGROUPID 
  INNER JOIN TEMPLATE_GROUP_PROPERTIES
  ON PROPERTY_DATA.PROPERTYGROUPID = TEMPLATE_GROUP_PROPERTIES.PROPERTYGROUPID
  INNER JOIN TEMPLATE_PROPERTYUNITS
  ON TEMPLATE_PROPERTYUNITS.PROPERTYUNIT = PROPERTY_DATA.PROPERTYGROUPID

The TEMPLATE_PROPERTYUNITS.PROPERTYUNIT is a string and I'm trying to link it with an int value. But I'm not sure how to cast it the right way :/

Upvotes: 2

Views: 6376

Answers (1)

Armen Abrami
Armen Abrami

Reputation: 224

If you know that the value stored in the string will always be numeric whole number you can do one of the following

SELECT CAST(TEMPLATE_PROPERTYUNITS.PROPERTYUNIT AS INT) FROM TEMPLATE_PROPERTYUNITS

SELECT CONVERT(INT, TEMPLATE_PROPERTYUNITS.PROPERTYUNIT) FROM TEMPLATE_PROPERTYUNITS

An example with joins

SELECT *
FROM PROPERTY_DATA   
INNER JOIN TEMPLATE_PROPERTYUNITS ON 
    CAST(TEMPLATE_PROPERTYUNITS.PROPERTYUNIT AS INT) = PROPERTY_DATA.PROPERTYGROUPID

Upvotes: 2

Related Questions