SQLのQueryについて(絞込み検索)

解決


Delphi初心者  2014-01-07 05:59:58  No: 45817  IP: [192.*.*.*]

お世話になります。

使用環境はWindows7/DelphiXE2/SQLServer2008Expressです。

とあるTableがあり、その中に文字列20桁のColumnがあります。
Query文を用いてその絞込み検索を行いたいのですが、いい方法が分からず、ご教授願いたく書き込ませて頂きます。
直接Delphiとは関係ないのですが、よろしくお願いします。

さて、その検索についてですが・・・
対象Columnには、例として下記のデータが入っているとします。
01234567890123456789
01234012345678956789
01012323454567678989
01010101010101010101
01234567890123456789
01234012345678956789
01012323454567678989
01010101010101010101

例えば、select Column名 from Table名 group by Column名  とすると、
01234567890123456789
01234012345678956789
01012323454567678989
01010101010101010101
が得られます。

Columnのデータの一部、例えば1桁目から5桁目までだけでGroup byのような絞込み検索する為のQuery文があれば教えて下さい。
例えば1桁目から5桁目だけで絞込みを行って得られる結果が
01234
01012
01010
や、16桁目から18桁目だけで絞込みを行って得られる結果が
567
789
101
等です。

ちなみに現状、普通に一旦、select Column名 from Table名 group by Column名  でQueryを実行し、
slist: TStringList;
を用意し、
Open;
First;
while not Eof do begin
  s:=Copy(FieldByName('Column名').AsString,1,5);
  if slist.IndexOf(s)=1 then begin
    slist.Add(s);
  end;
  Next;
end;
といった処理をしています。

よろしくお願い致します。

編集    削除
DEKO  2014-01-07 06:24:28  No: 45818  IP: [192.*.*.*]

よく解りませんが、こういう事 (↓) ですか?

[SQL - GROUP  BY  集計]
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28192&forum=26

編集    削除
おかぽん  2014-01-07 17:39:43  No: 45819  IP: [192.*.*.*]

もしや、SUBSTRING ですかね?

select SUBSTRING(Column名,1,5) from Table名 group by SUBSTRING(Column名,1,5)

[【SQL文字列関数】SUBSTR / SUBSTRING  ?  文字列を部分抽出する  (Oracle、SQL Server)]
http://www.sql-master.net/articles/SQL412.html

編集    削除
Delphi初心者  2014-01-21 06:48:45  No: 45820  IP: [192.*.*.*]

DEKOさん、おかぽんさん、ありがとうございました。
SUBSTRINGでうまくいきました。
感謝感謝ですm(_ _)m

編集    削除