Fortune cookies contain uplifting messages that bring a smile after a good meal. Did you know they likely originated in America, not China? We’ll share more exciting facts later! While fortunes are usually pre-written, we can generate unlimited random ones using SQL Server. This post will use the complete code to walk through a T-SQL implementation for a dynamic fortune picker.
Building the Fortune Database
First, we create tables to store fortune topics, adjectives, and nouns:
-- Create tables for fortune parts
CREATE TABLE FortuneTopics (
TopicId INT IDENTITY(1,1) PRIMARY KEY,
Topic VARCHAR(100)
);
INSERT INTO FortuneTopics VALUES
('love'), ('money'), ('career'), ('health'), ('travel'),
('relationships'), ('success'), ('adventure'), ('happiness'), ('knowledge');
CREATE TABLE FortuneAdjectives (
AdjectiveId INT IDENTITY(1,1) PRIMARY KEY,
Adjective VARCHAR(100)
);
INSERT INTO FortuneAdjectives VALUES
('great'), ('amazing'), ('challenging'), ('unexpected'), ('unfortunate'),
('exciting'), ('bright'), ('fulfilling'), ('promising'), ('rewarding');
CREATE TABLE FortuneNouns (
NounId INT IDENTITY(1,1) PRIMARY KEY,
Noun VARCHAR(100)
);
INSERT INTO FortuneNouns VALUES
('surprises'), ('gifts'), ('changes'), ('luck'), ('moments'),
('opportunities'), ('adventures'), ('success'), ('happiness'), ('journey');
GO
Now, we have our complete database of fortune components.
Constructing and Selecting Random Fortunes
We can generate random fortunes with this view:
-- Create view for random fortune
CREATE VIEW RandomFortune AS
SELECT TOP 1
CONCAT(
UPPER(LEFT(a.Adjective, 1)),
SUBSTRING(a.Adjective, 2, LEN(a.Adjective)),
' ',
n.Noun,
' await you in your ',
UPPER(LEFT(t.Topic, 1)),
SUBSTRING(t.Topic, 2, LEN(t.Topic)),
'.'
) AS Fortune
FROM FortuneAdjectives a
CROSS JOIN FortuneNouns n
CROSS JOIN FortuneTopics t
ORDER BY NEWID();
GOTo get a random fortune, we query the view:
-- Generate random fortunes SELECT Fortune FROM RandomFortune;
This dynamically returns creative fortunes like:
- Great surprises await you in your love.
- Amazing gifts await you in your relationships.
- Promising opportunities await you in your career.
- Exciting journey awaits you in your adventure.
- Bright changes await you in your success.
- Rewarding luck awaits you in your money.
- Fulfilling happiness awaits you in your health.
- Fortunate moments await you in your knowledge.
- Challenging adventures await you in your travel.
- Unexpected success awaits you in your happiness.
Fun Fortune Cookie Facts
- Fortune cookies likely originated from Japanese immigrants in California, not China.
- Over 3 billion fortune cookies are produced annually in the United States.
- The largest fortune cookie measured over 8 feet wide!
- The Chinese characters on fortunes are often meaningless and added for exotic appeal.
- Fortune cookies are served as desserts, not with meals, in China.
You can follow me on X (twitter).
Reference:Â Pinal Dave (https://blog.sqlauthority.com)



1 Comment. Leave new
Great idea Pinal. We can all do with uplifting messages