关于如何在sql server中不需要使用where rtrim(columnname) = 'value',因为它会自动认为带或不带尾空格的值是相同的。
然而,我很难找到关于前导空间的信息。如果(无论出于何种原因)我们的数据仓库在某些varchar/char类型的字段上有前导空格,并且我们需要where子句—我们还需要where ltrim()吗?我试图通过研究其他选项来避免这种严重的性能影响。谢谢你
在比较任何基于文本的数据类型时都不会忽略前导空格。如果要比较文本列的相等性,最好的选择是验证数据输入上的值,以确保不允许前面有不需要的空格的文本。例如,如果数据库期望用户从数据库应用程序期望的可能值列表中键入某些内容,则不允许用户界面允许用户自由输入文本,而是强制他们输入显式有效值之一。如果您需要用户能够输入自由格式的文本,但不需要前导空格,那么在插入时去掉它们。规范化数据库应该可以防止很多这类问题。