我在从 Microsoft Dynamics NAV 复制的表中获取数据(特别是一个字段)时遇到了一个小问题。
有一个字段以奇怪的格式存储提前期,作为一个新手,我想更聪明地向我征求意见。
有一个数字后跟一个字符,我假设它表示“单位”。
到目前为止,我得到的是第 2 行和第 4 行中使用了表示天数的字符,第 1 行和第 3 行使用了一个数周的字符
有人能说这是存储此类数据的某种“标准”方式吗?
告诉我如何将这些转换为天数或为我指明正确的方向?
我相信我找到了解决方案,但它似乎非常难看!
解决方案
SELECT
[ItmCode] AS [ItemCode],
[ItmDesc] AS [ItemDesc],
[ItmLead] AS [LeadTime_Orginal],
CASE WHEN ISNULL(ItmLead, '') ='' THEN 0 ELSE CHOOSE(ASCII(RIGHT(ItmLead, 1)), 0,1,0,7,0,0,0,0,0,0,0,0,0,0,0) * CAST(LEFT(ItmLead, LEN(ItmLead)-1) AS int) AS [LeadTimeInDays],
FROM dbo.nav_items;
任何更好的解决方案将不胜感激!