2016-07-26 71 views
-2

我通過GUID過濾SQL中的記錄,如果Guid爲空,則跳過過濾器,但如果它具有某個值,則根據過濾器獲取記錄。SQL中的Guid驗證

我使用

WHERE USERID = IIF(@FILTERUSER IS NULL, AD.USERID, @FILTERUSER) 

UserIdFILTERUSERuniqueidentifier類型。

但它不工作。請幫助。

+1

其中的RDBMS用的?請添加一個標籤來指定您是使用'mysql','postgresql','sql-server','oracle'還是'db2' - 或者其他的東西。 –

回答

1

我通過使用CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER)而不是NULL解決了問題。

因此,工作代碼爲:

WHERE USERID = IIF(@FILTERUSER = CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER, AD.USERID, @FILTERUSER)