我有一个 SQL 数据库,其中包含一个具有四个不同货币列的表,例如,我需要确定这四列中每条记录有多少种不同的货币。
| 记录ID | 电流1 | 电流2 | 电流3 | 电流4 | 货币计数 |
|---|---|---|---|---|---|
| 1 | 英镑 | 美元 | 英镑 | 英镑 | 2 |
| 2 | 英镑 | 欧元 | 英镑 | 美元 | 3 |
| 3 | 英镑 | 英镑 | 英镑 | 英镑 | 1 |
| 4 | 英镑 | 英镑 | 英镑 | 欧元 | 2 |
如何确定每条记录的“CurrencyCount”/货币数量?我不知道如何解决这个问题
感谢您的任何帮助
您可以使用表值构造函数引用外行中的列,然后COUNT (DISTINCT- 无需任何扩展和折叠GROUP BY
SELECT *,
CurrrencyCount = (SELECT COUNT (DISTINCT Currency) FROM (VALUES (CURR1), (CURR2), (CURR3), (CURR4)) AS x (Currency))
FROM YourTable
Run Code Online (Sandbox Code Playgroud)