拆分一个字符串,然后将其更改为十进制并将其乘以另一个表中的值

db_新用户

我需要从表 1 中分离出包含“货币”和“价值”或“;”的 Col1。

Table1

Col1      
GBP;185.00   
EUR;152.46   
;                         
SEK;364.55    
USD;364.55   

然后在表 2 中,我使用“CurrCode”与表 1 中的“Value”连接。

Table2

CurrValue   CurrCode
   11.01    GBP
    NULL    EUR
            ---
    9.44    SEK
    9.01    USD

我构建了这段代码,但数据量太大,它只能工作到 9000 列然后崩溃。有没有办法解决这个问题?

SELECT 
  Col1
 ,(reverse(substring(reverse(Col1),0,charindex(';',reverse(Col1))))) as LocalValue
 ,c.currVALUE
 ,substring(Col1,1,charindex(';',Col1)-1) as Currency
 ,case when Col1 like 'EUR;%' then  (reverse(substring(reverse(Col1),0,charindex(';',reverse(Col1)))))
         else try_convert(numeric(18,5),(reverse(substring(reverse(Col1),0, 
  charindex(';',reverse(Col1))))))* c.CurrValue 
         end as ValueEUR
 from b
 left join c
 on c.CurrencyCode = substring(Col1,1,charindex(';',Col1)-1)

所需的结果是一个显示 CurrValue、Currecy 和 ValueEUR 的表(其中 'CurrValue' * 'Localvalue' = 'ValueEUR'):

  LocalValue    Currency    ValueEUR
  185.33        GBP         2040.48
  152.46        EUR         152.46
  0             ---         0
  364.55        SEK         3441.35
  364.55        USD         3284.60

注意:当 Currency 为 EUR 时,CurrValue 为 NULL,ValueEUR 与 LocalValue 相同。

最大限度

我已经为演示创建了一个 CTE vTable1。我认为你最好创建一个视图。

IF OBJECT_ID('tempdb..#Table1') IS NOT NULL DROP TABLE #Table1
IF OBJECT_ID('tempdb..#Table2') IS NOT NULL DROP TABLE #Table2

create table #Table1
(
    Col1 varchar(100)
)

create table #Table2
(
    CurrValue decimal(18,2),
    CurrCode varchar(3)
)

INSERT INTO #Table1 
values
('GBP;185.00'),
('EUR;152.46'),
(';'),
('DKK;364.55'),
('SEK;364.55'),
('USD;364.55')

INSERT INTO #Table2
VALUES
(11.01, 'GBP'),
(null,  'EUR'),
(null,  '---'),
(9.44,  'SEK'),
(9.01,  'USD')

;WITH vTable1 (Currency, Value)
as
(
    SELECT SUBSTRING(Col1,0,CHARINDEX(';',Col1)) AS Currency
          ,TRY_CONVERT(DECIMAL(18,2), SUBSTRING(Col1,CHARINDEX(';',Col1)+1, LEN(Col1))) as Value
    FROM #Table1
)

SELECT COALESCE(t1.Value, 0) as CurrValue
      ,t2.CurrCode as Currency
      ,CONVERT(DECIMAL(18,2), COALESCE(t2.CurrValue * t1.Value, t1.Value, 0)) AS ValueEUR
FROM vTable1 as t1 
    RIGHT JOIN #Table2 as t2
        on t1.Currency = t2.CurrCode

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用替换获取字符并将其更改为Java中的另一个字符

来自分类Dev

查找一个字符串,获取其下的数据,然后将其输入到另一个工作表中

来自分类Dev

如何从数组中提取数字值,然后将其与另一个字符串组合?

来自分类Dev

如何在字符串中获取子字符串并将其存储在另一个字符串中

来自分类Dev

如何从字符串数组获取特定值并将其保存到另一个字符串数组?

来自分类Dev

Javascript按另一个字符串拆分字符串并包含用于将其拆分为结果的另一个字符串

来自分类Dev

在java中,如何在字符串中查找单词并将其复制到另一个字符串变量中?

来自分类Dev

如何在批处理脚本中查找字符串并将其替换为另一个字符串?

来自分类Dev

如何获取所有字符串并将其替换为数据库 JavaScript 中的另一个字符串

来自分类Dev

Jquery 如何从 html 中的 Id 获取字符串并将其与另一个字符串进行比较?

来自分类Dev

将网页的内容存储到一个字符串中并将其与另一个字符串进行比较

来自分类Dev

是否可以在多个 mp3 文件的标题标签中搜索一个字符串并将其替换为另一个字符串?

来自分类Dev

检测 URL 字符串中的特定字符并将其替换为另一个字符

来自分类Dev

如何计算一个字符串中的单个值并将其在php中加1

来自分类Dev

您如何从用户那里获取一个字符串并将其拆分?

来自分类Dev

按字符拆分字符串并将其解析为另一个表中的多个列

来自分类Dev

查找字符串中的一个字符或一组字符并将其删除

来自分类Dev

如何计算一个字符串的实例并将其替换为另一个字符串+当前计数器?

来自分类Dev

获取一个字符串数组并将其用作列名

来自分类Dev

操作一个字符串并将其作为 html 返回

来自分类Dev

MySQL和PHP在表中搜索一个字符串,但替换另一个字符串

来自分类Dev

记录具有特定值的列名称,然后将其串联为一个字符串

来自分类Dev

如何Json.Encoding一个字符串并将其用作“隐藏输入”字段的“值”?

来自分类Dev

获取一个字符串并将其放在行的开头,直到找到下一个字符串

来自分类Dev

在字符串中找到一个模式并快速将其与另一个字符串相关联

来自分类Dev

Bash-查找正则表达式并将其替换为另一个字符串

来自分类Dev

拉一个字符串的一个成员并将其设置为int?

来自分类Dev

将每一行的所有列连接为一个字符串,并将其写入R中的另一个数据帧

来自分类Dev

如何在Rust中拆分一个字符串,我将其作为read!()的输入

Related 相关文章

  1. 1

    使用替换获取字符并将其更改为Java中的另一个字符

  2. 2

    查找一个字符串,获取其下的数据,然后将其输入到另一个工作表中

  3. 3

    如何从数组中提取数字值,然后将其与另一个字符串组合?

  4. 4

    如何在字符串中获取子字符串并将其存储在另一个字符串中

  5. 5

    如何从字符串数组获取特定值并将其保存到另一个字符串数组?

  6. 6

    Javascript按另一个字符串拆分字符串并包含用于将其拆分为结果的另一个字符串

  7. 7

    在java中,如何在字符串中查找单词并将其复制到另一个字符串变量中?

  8. 8

    如何在批处理脚本中查找字符串并将其替换为另一个字符串?

  9. 9

    如何获取所有字符串并将其替换为数据库 JavaScript 中的另一个字符串

  10. 10

    Jquery 如何从 html 中的 Id 获取字符串并将其与另一个字符串进行比较?

  11. 11

    将网页的内容存储到一个字符串中并将其与另一个字符串进行比较

  12. 12

    是否可以在多个 mp3 文件的标题标签中搜索一个字符串并将其替换为另一个字符串?

  13. 13

    检测 URL 字符串中的特定字符并将其替换为另一个字符

  14. 14

    如何计算一个字符串中的单个值并将其在php中加1

  15. 15

    您如何从用户那里获取一个字符串并将其拆分?

  16. 16

    按字符拆分字符串并将其解析为另一个表中的多个列

  17. 17

    查找字符串中的一个字符或一组字符并将其删除

  18. 18

    如何计算一个字符串的实例并将其替换为另一个字符串+当前计数器?

  19. 19

    获取一个字符串数组并将其用作列名

  20. 20

    操作一个字符串并将其作为 html 返回

  21. 21

    MySQL和PHP在表中搜索一个字符串,但替换另一个字符串

  22. 22

    记录具有特定值的列名称,然后将其串联为一个字符串

  23. 23

    如何Json.Encoding一个字符串并将其用作“隐藏输入”字段的“值”?

  24. 24

    获取一个字符串并将其放在行的开头,直到找到下一个字符串

  25. 25

    在字符串中找到一个模式并快速将其与另一个字符串相关联

  26. 26

    Bash-查找正则表达式并将其替换为另一个字符串

  27. 27

    拉一个字符串的一个成员并将其设置为int?

  28. 28

    将每一行的所有列连接为一个字符串,并将其写入R中的另一个数据帧

  29. 29

    如何在Rust中拆分一个字符串,我将其作为read!()的输入

热门标签

归档