我的列值为ProductId - 102
,但当我想将其显示为ProductId - 1 DeviceId - 02
我将如何展示它?
查询将如何?
提前感谢。
答案 0 :(得分:2)
这些假设设备ID是最右边的2位
varchar列。如果是char,则转换为varchar和LTRIM
SELECT
REVERSE(SUBSTRING(REVERSE(MyCol), 3, 8000) AS ProductID,
RIGHT(MyCol, 2) AS DeviceID
整数列
SELECT
MyCol / 100 AS ProductID, --integer arithmetic
MyCol % 100 AS DeviceID -- modulo
答案 1 :(得分:1)
以下应该可以帮到你
选择'ProductId - 102','ProductId - '+ left(right('ProductId - 102',3),1),'DeviceId - '+ right('ProductId - 102',2)
答案 2 :(得分:1)
您会发现使用SQL有很多方法可以实现相同的目标。 从更好的编码角度来看,你应该将ProductID和DeviceID分为2列,然后如果你必须将它们一起显示为1,你可以将它们组合起来。这样,在搜索中,您可以快速找到DeviceID 47,而无需解析整个数据库。
假设您有一个名为PRODUCTS的表 和ProductID的值为“1”,DeviceID为“02”
您需要做的就是
选择ProductID + DeviceID作为CombinedID
它将返回:ProductID - 102
如果您仍有合理的商业理由,可以按照自己的方式进行操作:
假设您有一个名为PRODUCTS的表 和ProductID的值为'ProductID - 102'
如果您想使用完整的ProductID
从产品中选择ProductID
如果您想从设备ID中分离出产品
您的查询将是 SELECT LEFT(ProductID,len(ProductID)-2)+'设备ID - '+ RIGHT(ProductID,2)来自产品
这将为您提供分解的ProductID和DeviceID ...希望有帮助