【发布时间】:2014-01-21 18:41:10
【问题描述】:
我有一个结构如下的表:
CustID | Number 1 | Number 2 | Number 3 | Number 4
1 | 072454584 | | 017726593 |
2 | |0125456852| | 0125785448
我正在尝试执行选择第一个可用数字的查询,因此如果使用客户 ID 2,它将仅返回数字 2,如果存在仅数字 4 的记录,它将忽略 1,2, 3.我试过做一个 case when 语句,但我似乎无法弄清楚逻辑。
【问题讨论】:
-
我认为您应该更好地规划表格的结构
-
@Nadeem_MK 我认为你应该正确阅读这个问题。 “选择第一个可用数字的查询,因此如果使用客户 ID 2,它将仅返回数字 2,如果存在仅包含数字 4 的记录,它将忽略 1,2,3”
-
@Gavlaaa - 因为改变结构是在 SQL 问题上应该始终考虑的一件事,你应该提到你不能改变它。绝对不要滥用试图帮助的人——这不会让别人觉得有帮助
-
@Gavlaaa:不必粗鲁,Andrey Gordeev 并不是很有建设性,但他说该模型似乎是半最优是正确的。如果您有列
Number 1-Number N您应该更好地对其进行规范化并使用单独的表而不是列。这使得所有查询更简单、更高效。如果您计划添加更多列,它也更易于维护且不易出错。
标签: sql-server-2008 case