Reputation: 861
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
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