SQL 如何在 WHERE 子句中添加 3 个或更多条件?
SQL how do I add 3 or more conditions into the WHERE clause?
我认为只要在 WHERE 子句中添加 AND,只要所选列与 WHERE 子句匹配,我就可以无限添加条件。但是,以下查询:
No matching signature for operator AND for argument types: BOOL, BOOL, STRING. Supported signature: BOOL AND ([BOOL, ...]) at [8:3]
SELECT
DISTINCT state,
country,
city
FROM
customer_data.customer_address
WHERE
TRIM(state) = 'OH'
AND LENGTH(country) > 2
AND SUBSTR(city,1,5)
如果我要删除最后一行,它不会显示任何错误,我可以 运行 查询但是为什么添加另一个条件 return 这样的错误?
是的,您可以将如此多的逻辑操作与 WHERE
子句结合使用,但是,
你的 SUBSTR
是一个字符串 return 所以你必须将它与某些东西进行比较, SQL 服务器在我的例子中试图表现得像 `Bool 所以它会显示错误消息意味着结果是不是布尔值,而是 non-boolean:
Msg 4145, Level 15, State 1, Line 13
An expression of non-boolean type specified in a context where a condition is expected, near ')'.
要修复它,您必须将它与某些东西进行比较,假设 return 字符串等于 'abcde'
这是我使用 SQL 服务器的查询:
SELECT
DISTINCT state,
country,
city
FROM
tbl_Test2
WHERE
TRIM(state) = 'OH'
AND LEN(country) > 2
AND SUBSTRING(city,1,5) = 'abcde'
我认为只要在 WHERE 子句中添加 AND,只要所选列与 WHERE 子句匹配,我就可以无限添加条件。但是,以下查询:
No matching signature for operator AND for argument types: BOOL, BOOL, STRING. Supported signature: BOOL AND ([BOOL, ...]) at [8:3]
SELECT
DISTINCT state,
country,
city
FROM
customer_data.customer_address
WHERE
TRIM(state) = 'OH'
AND LENGTH(country) > 2
AND SUBSTR(city,1,5)
如果我要删除最后一行,它不会显示任何错误,我可以 运行 查询但是为什么添加另一个条件 return 这样的错误?
是的,您可以将如此多的逻辑操作与 WHERE
子句结合使用,但是,
你的 SUBSTR
是一个字符串 return 所以你必须将它与某些东西进行比较, SQL 服务器在我的例子中试图表现得像 `Bool 所以它会显示错误消息意味着结果是不是布尔值,而是 non-boolean:
Msg 4145, Level 15, State 1, Line 13 An expression of non-boolean type specified in a context where a condition is expected, near ')'.
要修复它,您必须将它与某些东西进行比较,假设 return 字符串等于 'abcde'
这是我使用 SQL 服务器的查询:
SELECT
DISTINCT state,
country,
city
FROM
tbl_Test2
WHERE
TRIM(state) = 'OH'
AND LEN(country) > 2
AND SUBSTRING(city,1,5) = 'abcde'