我需要在存储过程中使用If-Else块比较两个字符串,例如:
If(@USERNAME='rajat')
begin
select * from table
end
else
begin
select * from table1
end
但以上方法的问题是'='比较不区分大小写。我需要一种比较方式,其中区分大小写。
我需要在存储过程中使用If-Else块比较两个字符串,例如:
If(@USERNAME='rajat')
begin
select * from table
end
else
begin
select * from table1
end
但以上方法的问题是'='比较不区分大小写。我需要一种比较方式,其中区分大小写。
SQL Server在服务器、数据库和列级别具有区分大小写的功能。这是排序规则属性的一部分。因此,在您的示例中,很可能已将其中一个或多个设置为不区分大小写。
-- Check server collation
SELECT SERVERPROPERTY('COLLATION')
-- Check database collation.
SELECT DATABASEPROPERTYEX('AdventureWorks', 'Collation') SQLCollation;
-- Check column collation
select table_name, column_name, collation_name
from information_schema.columns
where table_name = @table_name
以下这种SQL可能适用于您:
If (@USERNAME='rajat' COLLATE Latin1_General_CS_AS)
.....
varbinary
类型:-declare @string1 as varchar(50) = 'abc'
declare @string2 as varchar(50) = 'ABC'
if @string1 = @string2
print 'same'
else
print 'different'
if convert(varbinary(50),@string1) = convert(varbinary(50),@string2)
print 'same'
else
print 'different'
产生:
same
different
If(@USERNAME='rajat' COLLATE Latin1_General_CS_AS )
begin
select * from table
end
else
begin
select * from table1
end