How to get exact result from charindex? [closed] - sql

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 3 years ago.
Improve this question
select *
from table_name
where charindex(dest_mail,'abc#mail.com') >0
In the above query dest_mail is a column, but there is another entry in the table, which is 'bc#mail.com'. When I try to execute the above query, I'm getting two results
1.abc#mail.com
2.bc#mail.com
How to get exact 'abc#mail.com'?

Have you considered =?
where dest_mail = 'abc#mail.com'
Also, charindex() is not very colloquial SQL for this purpose; = is a built-in standard operator (charindex() is not standard). And a bonus to = is that it allows the optimizer to take advantage of indexes and partitions.

Related

It seems like my min/max functions for my SQL code are reversed [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 2 days ago.
Improve this question
I'm using Microsoft SQL Server and I"m having issues writing a command for MIN and MAX functions.
It seems simple. The data type of the column is date time and the requested information is to find oldest/newest employee.
Below is the query I wrote:
select max(date_hired)
from staff;
select min(date_hired)
from staff;
But it seems like they are working in reverse. Min is giving me oldest and max is giving me youngest.

Dash in SQL Record [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 11 months ago.
Improve this question
I am trying to insert records into my table but keep getting an error due to the dash (Invalid column name 'NJB572'), how can I go about this? I have 2 columns in this table, both VARCHAR.
INSERT INTO dbo.Inventory VALUES
(131-NJB572, 'BROOM')
(PTI-I20, '9/16 IRONWORKERS')
(PTI-I16, '13/16" PUNCH');
You can use quotes to wrap the column names.
Try,
INSERT INTO dbo.Inventory VALUES
('131-NJB572', 'BROOM')
,('PTI-I20', '9/16 IRONWORKERS')
,('PTI-I16', '13/16" PUNCH');

ORA-00918 Column ambiguously defined [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed 7 years ago.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Improve this question
SELECT INDIVIDUAL.INV_FNAME,
INDIVIDUAL.INV_LNAME,
INDIVIDUAL.INV_IC_NUM,
CUSTOMER.MEMBER_LEVEL,
CUSTOMER.MEMBER_POINT_BALANCE,
CUSTOMER.MEMBER_DISCOUNT_RATE,
PROGRAM_USER.USER_CONTACT_NUM,
PROGRAM_USER.USER_ADDRESS,
PROGRAM_USER.USER_CITY,
PROGRAM_USER.USER_STATE,
PROGRAM_USER.USER_ZIP_CODE,
PROGRAM_USER.USER_COUNTRY,
PROGRAM_USER.USER_EMAIL
FROM PROGRAM_USER,CUSTOMER,INDIVIDUAL
WHERE USER_ID = ‘san’;
In your query only USER_ID column in the where condition is not specified with a table name. I guess USER_ID is there in multiple table. Try the where condition with proper table name
SELECT INDIVIDUAL.INV_FNAME,
INDIVIDUAL.INV_LNAME,
INDIVIDUAL.INV_IC_NUM,
CUSTOMER.MEMBER_LEVEL,
CUSTOMER.MEMBER_POINT_BALANCE,
CUSTOMER.MEMBER_DISCOUNT_RATE,
PROGRAM_USER.USER_CONTACT_NUM,
PROGRAM_USER.USER_ADDRESS,
PROGRAM_USER.USER_CITY,
PROGRAM_USER.USER_STATE,
PROGRAM_USER.USER_ZIP_CODE,
PROGRAM_USER.USER_COUNTRY,
PROGRAM_USER.USER_EMAIL
FROM PROGRAM_USER,CUSTOMER,INDIVIDUAL
WHERE PROGRAM_USER.USER_ID = ‘san’;
Also like #HoneyBadger comment you need to specify the join between the tables

Give an Alias to a column I've casted as a date [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 7 years ago.
Improve this question
Basically I'm selecting all the rows from a table and stripping the time portion of the date using
CAST(CREATE_DATE AS DATE)
but my results give me the rows I need but the column is unnamed.
How do I give the column a name?
Like this:
Cast(create_date as date) as [Column Name Here]
You can omit the [] if you are not using spaces or reserved words in your column name (which is good practice anyway).

SQL - Multiple Replace [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 8 years ago.
Improve this question
what i try to do is a multiple replace of an variable string.
but the problem that nothing happend.
i can´t figured out what is wrong in the code:
can someone give me hand with this pls?
here is the sql code:
SET #HTML = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(#EMAILBODY2SEND,
'#%LoginUser%#',#Name),
'#%Number%#',#Number),
'#%classification%#',#classification),
'#%Phone%#',#Phone,
'#%Date#',#Date)
Hope following query can make your life easier by not nesting too many parentheses.
SET #HTML = #EMAILBODY2SEND;
SELECT #HTML = REPLACE(#Html, P, R)
FROM (VALUES ('#%LoginUser%#',#Name),
('#%Number%#',#Number),
('#%classification%#',#classification),
('#%Phone%#',#Phone),
('#%Date#',#Date)
) AS T(P, R)