当前位置: 首页 > 知识库问答 >
问题:

mysql concat number和char字段

许俊雅
2023-03-14

我正在为jsdatatables显示生成数据——有四个站点,我需要将每个站点的数据拉入列中。大多数列只包含一个数字,但有时也会有注释,我需要将它们添加到列中。

我目前不工作的例子如下

SELECT a.drug as drug, 
CONCAT(SUM(IF(a.idSite=1, IF(a.expiry > now(),quantity,0), 0)),' ',notes) AS 'col1', 
SUM(IF(a.idSite=2, IF(a.expiry > now(),quantity,0), 0)) AS 'col2', 
SUM(IF(a.idSite=3, IF(a.expiry > now(),quantity,0), 0)) AS 'col3', 
SUM(IF(a.idSite=4, IF(a.expiry > now(),quantity,0), 0)) AS 'col4',
1,2  
FROM items a left join sites s on a.idSite = s.id  
WHERE a.deleted_at IS NULL   
Group By drug, notes

我特意将其他三列保留为数字,并且数据当前包含与col1相同的数据

这让我

+----------------------------------------------------------------------------------------------------------------------------------+-------------------+------+------+------+---+---+
| drug                                                                                                                             | col1              | col2 | col3 | col4 | 1 | 2 |
+----------------------------------------------------------------------------------------------------------------------------------+-------------------+------+------+------+---+---+
| (c) Absolute Ethyl Alcohol 98% i.v. Inj 1 ml                                                                                     | 0 n/a             |    0 |    0 |    0 | 1 | 2 |
| (c) Diazepam 10mg/2ml Injection                                                                                                  | 1 to be requested |    0 |    1 |    0 | 1 | 2 |
| (r) Fomepizole 1 g/ml (1.5ml) i.v. Solution (preservative Free)                                                                  | 8 n/a             |    0 |    8 |    0 | 1 | 2 |
| Acetylcysteine 20%                                                                                                               | NULL              |    0 |   70 |    0 | 1 | 2 |
| Activated Charcoal                                                                                                               | NULL              |    0 |   30 |    0 | 1 | 2 |
| Atropine 0.1mg/ml Pre Loaded Syringe                                                                                             | NULL              |    0 |  100 |    0 | 1 | 2 |
| Calcium Disodium Edetate 200mg/ml                                                                                                | NULL              |    0 |    0 |    0 | 1 | 2 |
| Calcium gluconate 10%                                                                                                            | NULL              |    0 |   20 |    0 | 1 | 2 |
| Cyanide Kit Sodium Nitrite 300mg/10 ml + Sodium Thiosulfate 12.5 g/50 ml + Amyl Nitrite 0.3 ml Or Hydroxocobalamin Hydrochloride | 0 Non Formulary   |    0 |    0 |    0 | 1 | 2 |

项目表

+-----+------------+----------------------------------------------------------------------------------------------------------------------------------+----------+------------+--------+----------+-----------------+
| id  | deleted_at | drug                                                                                                                             | quantity | expiry     | idSite | barcode  | notes           |
+-----+------------+----------------------------------------------------------------------------------------------------------------------------------+----------+------------+--------+----------+-----------------+
| 773 | NULL       | (c) Absolute Ethyl Alcohol 98% i.v. Inj 1 ml                                                                                     |        0 | 2021-07-18 |      3 | 41125225 | n/a             |
| 739 | NULL       | (c) Absolute Ethyl Alcohol 98% i.v. Inj 1 ml                                                                                     |        0 | 2021-07-18 |      1 | 41125225 | n/a             |
| 772 | NULL       | (c) Diazepam 10mg/2ml Injection                                                                                                  |        1 | 2020-08-01 |      3 | 41061007 | to be requested |
| 738 | NULL       | (c) Diazepam 10mg/2ml Injection                                                                                                  |        1 | 2020-08-01 |      1 | 41061007 | to be requested |
| 774 | NULL       | (r) Fomepizole 1 g/ml (1.5ml) i.v. Solution (preservative Free)                                                                  |        8 | 2021-07-01 |      3 | 41992542 | n/a             |
| 740 | NULL       | (r) Fomepizole 1 g/ml (1.5ml) i.v. Solution (preservative Free)                                                                  |        8 | 2021-07-01 |      1 | 41992542 | n/a             |
| 708 | NULL       | Acetylcysteine 20%                                                                                                               |       70 | 2019-11-01 |      1 | 41121031 | NULL            |
| 742 | NULL       | Acetylcysteine 20%                                                                                                               |       70 | 2019-11-01 |      3 | 41121031 | NULL            |
| 709 | NULL       | Activated Charcoal                                                                                                               |       30 | 2020-01-01 |      1 | 41125067 | NULL            |
| 743 | NULL       | Activated Charcoal                                                                                                               |       30 | 2020-01-01 |      3 | 41125067 | NULL            |
| 710 | NULL       | Atropine 0.1mg/ml Pre Loaded Syringe                                                                                             |      100 | 2021-07-01 |      1 | 41061203 | NULL            |
| 744 | NULL       | Atropine 0.1mg/ml Pre Loaded Syringe                                                                                             |      100 | 2021-07-01 |      3 | 41061203 | NULL            |
| 711 | NULL       | Calcium Disodium Edetate 200mg/ml                                                                                                |       30 | 2019-06-01 |      1 | 41121009 | NULL            |
| 745 | NULL       | Calcium Disodium Edetate 200mg/ml                                                                                                |       30 | 2019-06-01 |      3 | 41121009 | NULL            |
| 712 | NULL       | Calcium gluconate 10%                                                                                                            |       20 | 2020-11-01 |      1 | 41091003 | NULL            |
| 746 | NULL       | Calcium gluconate 10%                                                                                                            |       20 | 2020-11-01 |      3 | 41091003 | NULL            |
| 770 | NULL       | Cyanide Kit Sodium Nitrite 300mg/10 ml + Sodium Thiosulfate 12.5 g/50 ml + Amyl Nitrite 0.3 ml Or Hydroxocobalamin Hydrochloride |        0 | 2021-07-18 |      3 | 41002215 | Non Formulary   |
| 736 | NULL       | Cyanide Kit Sodium Nitrite 300mg/10 ml + Sodium Thiosulfate 12.5 g/50 ml + Amyl Nitrite 0.3 ml Or Hydroxocobalamin Hydrochloride |        0 | 2021-07-18 |      1 | 41002215 | Non Formulary   |

我的问题是,concat列只在有注释要显示时返回一个值——我肯定我在做一些愚蠢的事情

共有1个答案

须彭亮
2023-03-14

事实证明,如果任何字段是NULL解决方案,Conconat将返回NULLconcat_ws或按这里

 类似资料:
  • 我正在通过做微控制器项目来自学C++。我当前的项目是使用一对或Adafruit羽毛分组无线电。无线电数据包的库函数需要一个C样式的字符串(我相信),我理解它是一个char的数组。 我已经设置了一个枚举来反映接收方的各种操作,并希望将该状态发送回发送方。所以我想把枚举变成char的数组。 在搜索将枚举转换为char数组的方法时,最简单的方法(对我来说)是将枚举变量传递给带有switch语句的函数,该

  • 刚从C开始,我想知道是否有人能解释一些事情。 我相信你可以用下面的方法初始化一个字符数组 这将创建一个字符数组,其值为。 但如果我真的创造了这个: 会创建一个数组,以及指向该数组的指针吗? 例如:将指向内存中的第一个元素,以及数组中的其他元素?

  • 问题内容: 据我了解,字符是单个字符,即字母, 数字 ,标点符号,制表符,空格或类似内容。因此,当我这样做时: 输出1正是我所期望的。那为什么当我这样做时: 我最终的输出是 50 吗? 问题答案: 之所以得到它,是因为它添加了char 的ASCII值。您必须先将其转换为int。

  • 转码 Stylus可以字符转码。这可以让字符变成标识符,或是渲染成字面量。 例如: body padding 1 \+ 2 编译成: body { padding: 1 + 2; } 注意Stylus中/当作为属性使用的时候需要用括号括起来: body font 14px/1.4 font (14px/1.4) 生成: body { font: 14px/1.4; font

  • 字符编码是一种将字节转换为字符的方法。 要验证或显示HTML文档,程序必须选择字符编码。 HTML 5作者有三种设置字符编码的方法 - HTTP Content-Type标头 如果您正在编写cgi或类似的程序,那么您将使用HTTP Content-Type标头来设置任何字符编码。 以下是一个简单的例子 - print "Content-Type: text/html; charset=utf-8\

  • 描述 (Description) C库函数char *strtok(char *str, const char *delim)使用分隔符delim将字符串str分解为一系列标记。 声明 (Declaration) 以下是strtok()函数的声明。 char *strtok(char *str, const char *delim) 参数 (Parameters) str - 修改此字符串的内容