由于SQL Server没有数组类型,所以在面对“从若干待选项中选一个”这种需求时,往往要采取变通办法,比如弄个‘a|b|c’这样的字符串然后对字符串进行处理:又或者把待选项塞进一个临时表,然后把问题变成如何select的问题.下面的写法就是采用后一种,只不过得益于VALUES和CTE,我们不必真的一板一眼的去弄个临时表或表变量什么的,可以让代码更加紧凑,不至于很冗杂. 写法1: DECLARE @choice INT = ( SELECT Amount FROM (VALUES ( , ) ,