1

在瑞典,如果您是男性,则个人身份证号的倒数第二个数字为奇数,如果您是女性,则为偶数。

我想进行此查询,以便它只选择女性(偶数)。

SELECT COL1,COL2,COL3,COL4 FROM TABLE
INNER JOIN TABLE.COL ON TABLE.COL = TABLE.COL
INNER JOIN TABLE.COL ON TABLE.COL = TABLE.COL
WHERE COL = 'TEXT'
AND COL > 5000
AND RIGHT(IDNUMBER,2) = %2 <> 0
4

4 回答 4

5

要选择偶数,该数除以 2 的余数必须为 0,因此:

RIGHT(IDNUMBER,2) % 2 = 0

RIGHT(IDNUMBER,2)不返回倒数第二个数字,而是返回最后 2 个数字。除以 10 得到你想要的:

RIGHT(IDNUMBER,2)/10 % 2 = 0

获得最后 2 位数字的另一种方法是找到数字的剩余部分除以 100,因此:

IDNUMBER % 100 / 10 % 2 = 0

实际上,我们只需要除以 10,因为除以 2 只取决于数字的最后一位:

IDNUMBER / 10 % 2 = 0
于 2013-09-05T08:48:23.807 回答
3

如果右边的第二个数字确定“男性”或“女性”,那么你应该这样做:

SELECT COL1,COL2,COL3,COL4 FROM TABLE
INNER JOIN TABLE.COL ON TABLE.COL = TABLE.COL
INNER JOIN TABLE.COL ON TABLE.COL = TABLE.COL
WHERE COL = 'TEXT'
AND COL > 5000
AND LEFT(RIGHT(IDNUMBER,2),1)%2 = 0 --Female. <>0 will give you Male

拉吉

于 2013-09-05T08:53:54.943 回答
3

您还可以使用:

LEFT(RIGHT(IDNUMBER,2),1) IN ('0', '2', '4', '6', '8')

或者

LEFT(RIGHT(IDNUMBER,2),1) LIKE '[02468]'

或者

RIGHT(IDNUMBER,2) LIKE '[02468]_'

甚至:

IDNUMBER LIKE '%[02468]_'
于 2013-09-05T08:58:03.560 回答
2
WHERE CAST (LEFT(RIGHT(IDNUMBER,2),1) AS INT) % 2 = 0
于 2013-09-05T08:51:20.823 回答