我需要在存储过程中的If-Else块中比较两个字符串,例如

If(@USERNAME='rajat')
begin
select * from table
end
else
begin
select * from table1
end

但是上述方法的问题是'='比较不区分大小写。我需要比较不区分大小写的方法

最佳答案

SQL Server在服务器,数据库和列级别具有区分大小写的功能。这是collation属性的一部分。因此,在您的示例中,这些设置中的一项或多项可能已设置为不区分大小写。

-- 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)
.....

关于sql-server - 区分大小写的字符串比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20266485/

10-13 23:00