SELECT查询多个列

时间:2016-01-31 15:06:24

标签: sql

我对SQL不是很熟练,需要一些帮助。我有一个包含许多列的表,我正在尝试识别列值的多个组合相同的那些行。下面是一个查询尝试,当所有比较都为真时,将选择该行。查询运行但效果不正确。

SELECT *
FROM [Customer] 
WHERE [State] = [Shipping State/Province] 
  AND [Zip Code] = [Shipping Zip/Postal Code] 
  AND [Customer Type] = [Customer Type 2]

提前致谢。

2 个答案:

答案 0 :(得分:1)

如上所述,您的查询似乎可以执行您想要的操作。一种可能性是忽略NULL值。如果是这样的话:

SELECT *
FROM [Customer]
WHERE ([State] = [Shipping State/Province] OR [State] IS NULL AND [Shipping State/Province] IS NULL) AND
      ([Zip Code] = [Shipping Zip/Postal Code] OR [Zip Code] IS NULL AND [Shipping Zip/Postal Code] IS NULL) AND
      ([Customer Type] = [Customer Type 2] OR [Customer Type] IS NULL AND [Customer Type 2] IS NULL);

另一种可能性是值看起来可能相同,但由于前导/尾随空格或类似的字母,它们不是。

答案 1 :(得分:0)

你的问题在于投射。如果您的列类型是整数,那么将其值除以另一列将得到除法的整数部分,这可能与您的结果不相等,因此您的查询将无法给出正确的答案。 对于分辨率,您可以为您投射列类型并进行计算。