使用连接在SQL中强制转换列

时间:2013-11-18 19:31:18

标签: sql vb.net

我正在尝试运行这个庞大且令人困惑的SQL查询,但是有些列需要作为不同的类型进行转换。这是我现在的查询:

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

TEMPLATE_PROPERTYUNITS.PROPERTYUNIT是一个字符串,我正在尝试将其与int值相关联。但我不确定如何以正确的方式施展它:/

1 个答案:

答案 0 :(得分:2)

如果您知道存储在字符串中的值将始终为数字整数,则可以执行以下操作之一

SELECT CAST(TEMPLATE_PROPERTYUNITS.PROPERTYUNIT AS INT) FROM TEMPLATE_PROPERTYUNITS

SELECT CONVERT(INT, TEMPLATE_PROPERTYUNITS.PROPERTYUNIT) FROM TEMPLATE_PROPERTYUNITS

加入

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