簡體   English   中英

SQL 條件表達式 MS Access 中的數據類型不匹配

[英]SQL Data type mismatch in criteria expression MS Access

我有個問題。

當我嘗試運行此查詢時:

SELECT Artiesten.ID AS txtArtiestId, 
NULL AS txtAlbumId, 
NULL AS txtNummerId, 
Artiestnaam AS Artiesten, 
NULL AS Albums, 
NULL As Nummers 
FROM Artiesten 
WHERE Artiesten.Artiestnaam LIKE '*On*' 

UNION ALL

SELECT 
Artiesten.ID AS txtArtiestId, 
Albums.ID AS txtAlbumId, 
NULL AS txtNummerId, 
Artiesten.Artiestnaam AS 
Artiesten, Naam AS Albums, 
NULL As Nummers 
FROM Albums 
INNER JOIN Artiesten ON Albums.ArtiestId = Artiesten.ID 
WHERE  albums.naam LIKE '*On*'

UNION ALL

SELECT 
Artiesten.ID AS txtArtiestId, 
Albums.ID AS txtAlbumId, 
Nummers.ID AS txtNummerId, 
Artiesten.Artiestnaam AS Artiesten, 
Albums.Naam AS Albums, 
Nummers.Naam AS Nummers 
FROM  (Nummers INNER JOIN Albums ON Nummers.AlbumId = Albums.ID)
INNER JOIN Artiesten ON Albums.ArtiestId = Artiesten.ID
WHERE  Nummers.Naam LIKE '*On*'

它說:

“條件表達式中的數據類型不匹配”

現在我已經知道它必須與第一個和最后一個查詢有關。 這兩個一起導致了錯誤。

我究竟做錯了什么?

您可以通過在第一個查詢中為NULL提供適當的類型來解決此問題:

SELECT Artiesten.ID AS txtArtiestId, 
       int(NULL) AS txtAlbumId, 
       int(NULL) AS txtNummerId, 
       Artiestnaam AS Artiesten, 
       str(NULL) AS Albums, 
       str(NULL) As Nummers 
FROM Artiesten 
WHERE Artiesten.Artiestnaam LIKE '*On*'

實際上,我不確定正確的類型是什么。 我只是猜測。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM