我有一列将始终为5位数字,并且每一位将始终为1或0。当第二个位置等于1时,我需要放入where子句以排除。例如,01000为排除在外,但要保留10010。我目前有:
const base = { a: 1};
const source = Object.create(base, {b: 2, c: 3} );
const fieldsMapping = {a: 'aa', b: 'bb', c: 'cc'};
expect(yourFunction(source, fieldsMapping)).toEqual({ bb: 2, cc: 3 });
不使用Substring函数怎么办?
编辑:此外,该列在数据库中是varchar(10)。这有关系吗?
答案 0 :(得分:0)
使用LEFT和RIGHT,然后检查是否为1或以下-
WHERE RIGHT(LEFT(field,2),1) <> '1' OR field IS NULL
答案 1 :(得分:0)
您可以使用like
运算符直接检查该字符:
WHERE field LIKE '_1%' OR field IS NULL
答案 2 :(得分:0)
不。 如果“字段”是字符串类型,则需要使用字符串函数进行操作。 SUBSTRING或其他某种味道。 您还可以将其转换为二进制文件,并使用按位AND运算符,但这不能解决根本问题。
您正面临忽略1NF的后果。 科德坚持认为每个“单元”必须是原子的,这是有原因的。你不是。
您可以将此位图分成原子属性列吗?