[操作疑難] SQL公式

本帖最後由 keeauu9 於 2022-9-3 16:41 編輯

select A, B, C, D, E, F, G from TB
where  B like "%egg%" or C like "%egg%" or D like "%egg%" or E like "%egg%"
order by A asc

想問問, SQL 需要在B,C,D,E 找 %egg%, 但有沒有方法可以用一個變數(例KEYWORD),  會直接代入 B,C,D,E裡面

select A, B, C, D, E, F, G from TB
set KEYWORD as a "%egg%"
where  B like KEYWORD or C like KEYWORD or D like KEYWORD or E like KEYWORD
order by A asc


謝謝.

提示: 作者被禁止或刪除 內容自動屏蔽

TOP

我是直接Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Z:\client2022.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";
去connect excel.xlsx, 但條SELECT語句我不知道有沒有 @KEYWORD, 現在每個B,C,D,E 這樣重覆是行到的, 但進一步, DECLARE @KEYWORD 唔知得唔得?

謝謝.

TOP

點解咁多個 value 都裝類似資料?似設計出錯多啲

TOP

點解咁多個 value 都裝類似資料?似設計出錯多啲
tunster 發表於 2022-9-3 17:56



    因B,C,D,E = 都是數字, B=hometel, C=mobile, D=office, E=fax,
現在有一些number 要找b,c,d,e, 看看是不相同人名,相同公司

TOP

回覆 1# keeauu9

PLSQL function

TOP

咁又得唔得:
select a, b, c, d, e from tb
where instr(b,'egg') + inst(c,'egg') + instr(d,'egg') + instr(e,'egg') > 0

TOP

=== For Oracle ===

SELECT
        A, B, C, D, E, F, G,
        A || B || C || D || E || F || G AS searchCol
FROM
        TB
WHERE
        searchCol like '%egg%'
ORDER by
        A ASC

TOP

其實這句是行的,
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Z:\client2022.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";

select A, B, C, D, E, F, G from TB
where  B like "%egg%" or C like "%egg%" or D like "%egg%" or E like "%egg%"
order by A asc

但就好像要查緝的文字, "%egg%" 太重複了, 要在B,C,D,E都要打4次.  因此才想有沒有方法, 只用一個變數, 直接套上B,C,D,E 即可?

只是簡單用Query Tool. 去查, 會不會唔同真SQL?

謝謝

TOP

其實這句是行的,
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Z:\client2022.xlsx;Extended Properties ...
keeauu9 發表於 2022-9-3 23:05



    好似 8 樓咁  將 A至 G concat 晒佢 再 like 就一次過

TOP