簡體   English   中英

選擇單元格包含多個值的行

[英]Selecting rows where cells contain multiple values

使用Oracle SQL Developer 1.5.5。

我有一個數據表,並且試圖從表(TABLENAME)中選擇行,其中表中的列(COLUMN5)包含多個值。 例如,使用以下命令:

select * from TABLENAME where COLUMN5=''101','221','429''

我這樣做是因為我想選擇表中第5列的單元格值為'101','221',229'的所有行

更為復雜的是,表中的每個值都位於單引號內,並用逗號分隔。 當運行上述命令時,我收到一條錯誤消息,提示“ SQL命令未正確結束”,我認為這與單引號和多個值有關,因為當我運行以下命令以選擇第5列為'時的行443',我得到一個結果:

select * from TABLENAME where COLUMN5='''443'''

請注意,表中的這些“ 443”值在其周圍帶有單引號。

我的問題是,什么命令將允許我選擇第5列中具有多個值的行? 救命!

讓我知道您是否需要任何澄清

我認為您可以像下面這樣使用FIND_IN_SET:

select * from accounts where FIND_IN_SET('101','101,102') 
FIND_IN_SET ignore the single quotes

您只需要轉義報價

create table so_col5 (a integer, col5 varchar2(25));
insert into so_col5 values (1, 'abcd');
insert into so_col5 values (2, 'abcd');
insert into so_col5 values (3, 'abcd');
Insert into SO_COL5 (A,COL5) values (4,'''101'',''221'',''229''');

commit;

select * from so_col5 where col5 = '''101'',''221'',''229''';

在此處輸入圖片說明

我做了幾次嘗試,測試了從double中選擇字符串,但是后來我想起我可以作弊-並將GRID的結果導出為INSERT腳本,然后復制/粘貼該值的引用字符串,並在我的SELECT中使用它。

您使用的是V1.5,這是ANCIENT。 強烈建議您升級以獲得最佳體驗。

您還可以使用Q函數( docs ),該函數可以傳遞字符串,Oracle會為您處理引號轉義。 您可以在LiveSQL上使用以下方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM