【问题标题】:Converting kilograms to grams in SQL query in SSMS [closed]在 SSMS 中的 SQL 查询中将千克转换为克 [关闭]
【发布时间】:2018-07-12 18:49:46
【问题描述】:

在下面的代码中有一个名为birthweight 的列名,目前在它正在拉取的表格中以“kg”显示,但我希望通过将 kg 转换为 g 来以克显示

例如,现在它显示 2.92 公斤,我需要将其转换为 2920.00 克

【问题讨论】:

  • 提示:* 1000.
  • 我希望它在程序中实现并准确显示先生,对 sql 来说有点新......对不起,它应该显示例如 2.92 kg 应该显示为 2920 g
  • 那么birthweight是一个混合了十进制和字符数据的varchar列?
  • 目前它在输出 2.92 kg 中显示为这样;我需要将其显示为 2920.oo g
  • 2.92 * 1000 = 2920。或者当您说“显示 2.92 公斤”时,您的意思是表中有“2.92 公斤”?在此处显示一些示例数据将大大有助于解决此问题。

标签: sql sql-server sql-server-2008 ssms


【解决方案1】:

我认为你需要这个:

select cast((cast(rtrim(replace(birthweight, 'kg', '')) as float) * 1000) as varchar(50)) + ' g' birthweight from yourtable

【讨论】:

  • 我不认为这很简单。我很确定他们有 varchar 数据,而不是整数数据。
  • @SeanLange - 你是绝对正确的。我已经更新了查询。
  • 呵呵,和我贴的差不多。但我更喜欢你的,因为它更简单一些。干得好!!
【解决方案2】:

如果你真的想要,你可能会创建一个函数来执行此操作。我没有完全测试这一点,但应该给你一个想法。

CREATE FUNCTION dbo.converter (@kg decimal)  
RETURNS decimal  
WITH EXECUTE AS CALLER  
AS  
BEGIN  
 DECLARE @g decimal
 SET @g = @kg * 1000

 RETURN(@g);  
END; 

您可以在 SELECT 语句中这样称呼它

SELECT CAST(dbo.converter([Your_KG_Column]) as decimal(18,2))

【讨论】:

  • 标量函数在这里完全是矫枉过正,但我​​认为它们没有十进制数据类型。很确定它是格式化的字符数据。
  • 谁能帮我修改我从我的程序中给出的上述程序.. 以显示我要求的方式请
  • 是的,这可能是矫枉过正。我只是在想,如果这是进行转换的某种常见要求,它可以扩展到做更多事情并在其他地方使用。但我一般同意这种情况,如果这是唯一一次使用它......
  • 但是标量函数的性能很糟糕。因此,即使多次需要它,也只需计算一下即可。 :)
  • @skumar 我们无法为您提供帮助,因为您还没有发布足够的详细信息。
【解决方案3】:

不知道真实数据会是什么样子,所以我只是把一些东西放在一起。也许这会有所帮助。

declare @Something table
(
    BirthWeight varchar(10)
)

insert @Something values
('2.92 kg')
, ('3.44 kg')
, ('1.89 kg')

select *
    , convert(varchar(10), convert(int, convert(decimal(7,2), replace(s.BirthWeight, ' kg', '')) * 1000)) + ' g'
from @Something s

【讨论】:

  • 使用 masterdb DROP TABLE #PRG1 SELECT DISTINCT ISNULL(Visit.WeightField,'') as 'Birthweight' INTO #PRG1 FROM AbsAcct_RegData as Abs INNER JOIN AbsAcct_VisitData as Visit ON Abs.SourceID = Visit.SourceID AND Abs.VisitID = Visit.VisitID INNER JOIN RegAcct_Main as Reg ON Abs.SourceID = Reg.SourceID AND Abs.VisitID = Reg.VisitID
  • @skumar 那应该显示什么?如果这是关于您的问题的信息,它应该在问题中。但也要意识到查询对其他人毫无用处,因为我们没有这些表。
  • 请不要对存储出生体重文本的解决方法提出建议。
  • @CetinBasoz 你的评论是什么意思?
  • 这意味着不要鼓励 OP 将出生体重(或任何新生儿体重)存储为文本。
猜你喜欢
  • 2021-01-28
  • 2018-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多