在瑞典,personal identity number中的倒数第二位是ODD,如果你是男性,即使你是女性,也是如此。
我想进行此查询,以便它只选择女性(偶数)。
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
答案 0 :(得分: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
答案 1 :(得分: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
拉吉
答案 2 :(得分: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]_'
答案 3 :(得分:2)
WHERE CAST (LEFT(RIGHT(IDNUMBER,2),1) AS INT) % 2 = 0