T-SQL where 语句不起作用
T-SQL where statement not working
我在以下 table 结构中得到以下查询:
select *
from [dbo].[Interpurchase_Intervals_1]
where client_id = '24'
Table结构:
Client_ID nvarchar(10, null)
Customer_ID nvarchar(max, null)
Gradient decimal ((18,5), null)
查询:
select distinct [Client_ID]
from [dbo].[Interpurchase_Intervals_1]
Returns:
Client_ID
----------
13
24
8
查询:
select *
from [dbo].[Interpurchase_Intervals_1]
returns:
classification Client_ID
----------------------------
1 24
2 24
1 13
但是,当我 运行 这个查询时:
select *
from [dbo].[Interpurchase_Intervals_1]
where client_id = '24'
我得到一个空的结果集。
我不明白为什么要通过 client_id = '24' return 过滤数据 return:
classification Client_ID
------------------------
1 24
2 24
如果 Client_ID
列中有不需要的空格,最好的办法是将其删除。如果您不能这样做,那么在您的查询中处理它的一种选择是 trim 将其移除:
SELECT *
FROM [dbo].[Interpurchase_Intervals_1]
WHERE LTRIM(RTRIM(client_id)) = '24'
我在以下 table 结构中得到以下查询:
select *
from [dbo].[Interpurchase_Intervals_1]
where client_id = '24'
Table结构:
Client_ID nvarchar(10, null)
Customer_ID nvarchar(max, null)
Gradient decimal ((18,5), null)
查询:
select distinct [Client_ID]
from [dbo].[Interpurchase_Intervals_1]
Returns:
Client_ID
----------
13
24
8
查询:
select *
from [dbo].[Interpurchase_Intervals_1]
returns:
classification Client_ID
----------------------------
1 24
2 24
1 13
但是,当我 运行 这个查询时:
select *
from [dbo].[Interpurchase_Intervals_1]
where client_id = '24'
我得到一个空的结果集。
我不明白为什么要通过 client_id = '24' return 过滤数据 return:
classification Client_ID
------------------------
1 24
2 24
如果 Client_ID
列中有不需要的空格,最好的办法是将其删除。如果您不能这样做,那么在您的查询中处理它的一种选择是 trim 将其移除:
SELECT *
FROM [dbo].[Interpurchase_Intervals_1]
WHERE LTRIM(RTRIM(client_id)) = '24'