我想like在where使用像 test 這樣的串列的陳述句中使用:
select *
FROM mydb.my_table.K
WHERE K.myid LIKE IN ('AT%', 'BEL%' , 'DDCY%')
這不起作用,而這樣做:
select *
FROM mydb.my_table.K
WHERE (K.myid LIKE 'AT%' OR K.myid LIKE'BEL%' OR K.myid LIKE 'DDCY%')
uj5u.com熱心網友回復:
您是否考慮過使用 STRLEFT?
select *
FROM mydb.my_table.K
WHERE STRLEFT(K.myid,2) IN ('AT', 'BE' , 'CY')
uj5u.com熱心網友回復:
您的第一個 SQL 在語法上是正確的,但它不會按照邏輯作業。第二個 SQL 可以解決問題,但它很慢,如果你有很多引數,這可能是一個問題。
不幸的是,您不能在串列中使用引數,但您可以使用rlike或regexp_like來實作這一點。
select *
FROM mydb.my_table.K
WHERE K.myid RLIKE '^AT|^BEL|^DDC'
請注意,這是一個正則運算式,^表示字串的開頭并|連接所有模式引數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/387403.html
下一篇:SQL查詢。如何按月計算條目數
