如何检查SQL表行中的相等性?

时间:2016-01-28 04:15:10

标签: sql

现在我正在研究一些初学者SQL的东西,而且我遇到了一个练习题的问题:

  

列出所有员工的SSN,姓名(第一个和最后一个)和薪水   是经理。
提示:使用嵌套查询来获得答案。

经理是指拥有与SSN相同的SUPERSSN的人。上面的问题对我来说似乎很直接,但是当我运行我的SQL代码时:

SELECT SSN, FName, LName, Salary
FROM employee
WHERE SSN = SuperSSN

它返回ZERO行,我不知道为什么。任何帮助是极大的赞赏!感谢。

编辑!:我的错误。 SuperSSN是varChar而SSN是Int。

EDIT2:表格如下所示:

SSN   BDate     Sex Address Salary  FName   Minit   LName   DNo SuperSSN
123456789 | 1965-01-09  | M |   "731 Fondren, Houston, TX"  | 30000 |   John    B | Smith | 5 | 123456789 

2 个答案:

答案 0 :(得分:1)

如果您希望保留index.php类型的SuperSSN列,可以尝试以下操作:

VARCHAR

否则,只需这样就可以了:

SELECT SSN, FName, LName, Salary
  FROM employee
 WHERE SSN = (SELECT DISTINCT CAST(SuperSSN AS UNSIGNED) FROM employee WHERE SSN = SSN);

答案 1 :(得分:1)

尝试以下

SELECT SSN, FName, LName, Salary
FROM employee
WHERE SSN = (SELECT SuperSSN FROM employee WHERE SSN = SSN)