Search This Blog

Wednesday, June 25, 2008

Select a random row from a database table

This can be achieved by many means here a very simple way is given which shows a random row from the database but syntax for different database is different.

Select a random row with MySQL:

SELECT column FROM table
ORDER BY RAND()
LIMIT 1

Select a random row with PostgreSQL:

SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1

Select a random row with Microsoft SQL Server:

SELECT TOP 1 column FROM table
ORDER BY NEWID()

Select a random row with IBM DB2

SELECT column, RAND() as IDX
FROM table
ORDER BY IDX FETCH FIRST 1 ROWS ONLY

Select a random record with Oracle:

SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1

Saturday, June 21, 2008

Scanning a folder in Borland Delphi

Here is a readymade procedure for scanning a folder and applying some action on each subfolder or file


procedure ScanFolder( src string );
var
sts : Integer ;
SR: TSearchRec;
begin
sts := FindFirst( src + '*.*' , faAnyFile , SR );
if sts = 0 then
begin
if ( SR.Name <> '.' ) and ( SR.Name <> '..' ) then
begin
//Put User Feedback here if desired
Application.ProcessMessages;
if pos('.', SR.Name) = 0 then
begin
//subfolder put your code for subfolder
scanFolder(src + SR.Name);
end
else
//file put your code for file
end;
while FindNext( SR ) = 0 do
begin
if ( SR.Name <> '.' ) and ( SR.Name <> '..' ) then
begin
//Put User Feedback here if desired
Application.ProcessMessages;
if Pos('.', SR.Name) = 0 then
begin
//subfolder put your code for subfolder
scanFolder(src + SR.Name);
end
else
//file put your code for file
end;
end;
FindClose( SR ) ;
end ;
end;

Searching duplicate Record

Very often we have to look for duplicate records in the database, Below is the query which can give you the result. SELECT COL1, COL2 , ...