SELECT
t.ST400A,
t.ST400B,
CASE
WHEN t.ST400A = @VisibleLine AND t.ST400B = @VisibleLine THEN @Positive
ELSE @Invalid
END AS Result
FROM YourTableName AS t; -- ใช้ ALIAS ชื่อตารางเป็น t
--STRIP 2 BAND (IMC) Declare alias
--DECLARE ใช้ได้ใน Stored Procedures, Functions, หรือ Scripts ของ SQL Server แต่ไม่สามารถใช้ใน View ได้
ALIAS ใช้ได้ทุกที่ใน Query เพื่อตั้งชื่อคอลัมน์หรือตารางให้สั้นและสื่อความหมาย
---
คุณสามารถใช้ `DECLARE` เพื่อกำหนดตัวแปรและ `ALIAS` (ชื่อแทน) เพื่อทำให้โค้ดอ่านง่ายขึ้นได้ โดยเฉพาะถ้าต้องการ **นำค่าไปใช้ซ้ำ** หรือ **ปรับเงื่อนไขแบบไดนามิก**
### ตัวอย่างการใช้ `DECLARE` และ `ALIAS` ร่วมกับ `CASE`:
```sql
-- ประกาศตัวแปรเพื่อเก็บเงื่อนไข
DECLARE @VisibleLine NVARCHAR(20) = 'Visible Line';
DECLARE @Clearly NVARCHAR(20) = 'Clearly';
SELECT
-- ใช้ ALIAS ตั้งชื่อคอลัมน์ผลลัพธ์ว่า Result
CASE
WHEN ST400A = @VisibleLine AND ST400B = @VisibleLine THEN 'Positive'
WHEN ST400A = @VisibleLine AND ST400B = @Clearly THEN 'Negative'
WHEN ST402A = @VisibleLine AND ST402B = @VisibleLine THEN 'Positive'
WHEN ST402A = @VisibleLine AND ST402B = @Clearly THEN 'Negative'
WHEN ST403A = @VisibleLine AND ST403B = @VisibleLine THEN 'Positive'
WHEN ST403A = @VisibleLine AND ST403B = @Clearly THEN 'Negative'
ELSE 'invalid'
END AS Result
FROM YourTableName;
```
---
### วิธีใช้ `DECLARE` แบบละเอียด:
#### 1. **ประกาศตัวแปรสำหรับเงื่อนไข**
- ใช้เก็บค่าที่ต้องเปรียบเทียบบ่อยๆ เช่น `'Visible Line'` และ `'Clearly'`
- ช่วยให้แก้ไขเงื่อนไขได้ง่ายในอนาคต (แก้ที่ตัวแปรเพียงจุดเดียว)
```sql
DECLARE
@VisibleLine NVARCHAR(20) = 'Visible Line',
@Clearly NVARCHAR(20) = 'Clearly',
@Positive NVARCHAR(20) = 'Positive',
@Negative NVARCHAR(20) = 'Negative',
@Invalid NVARCHAR(20) = 'invalid';
```
#### 2. **นำตัวแปรไปใช้ใน `CASE`**
- ใช้ตัวแปรแทนการเขียนค่าตรงๆ ทำให้โค้ดสั้นและป้องกันข้อผิดพลาดจากการพิมพ์
```sql
SELECT
CASE
WHEN ST400A = @VisibleLine AND ST400B = @VisibleLine THEN @Positive
WHEN ST400A = @VisibleLine AND ST400B = @Clearly THEN @Negative
WHEN ST402A = @VisibleLine AND ST402B = @VisibleLine THEN @Positive
WHEN ST402A = @VisibleLine AND ST402B = @Clearly THEN @Negative
WHEN ST403A = @VisibleLine AND ST403B = @VisibleLine THEN @Positive
WHEN ST403A = @VisibleLine AND ST403B = @Clearly THEN @Negative
ELSE @Invalid
END AS Result
FROM YourTableName;
```
---
### วิธีใช้ `ALIAS` เพิ่มเติม:
#### 1. **ตั้งชื่อคอลัมน์ย่อยด้วย `AS`**
- ช่วยจัดกลุ่มข้อมูลหรือคำนวณค่าที่ซับซ้อน
```sql
SELECT
CASE
WHEN A = @VisibleLine AND B = @VisibleLine THEN @Positive
ELSE @Invalid
END AS Group1_Result,
CASE
WHEN C = @VisibleLine AND D = @Clearly THEN @Negative
ELSE @Invalid
END AS Group2_Result
FROM YourTableName;
```
#### 2. **ใช้ `ALIAS` กับตาราง**
- ช่วยย่อชื่อตารางเวลา Join
```sql
SELECT
t.ST400A,
t.ST400B,
CASE
WHEN t.ST400A = @VisibleLine AND t.ST400B = @VisibleLine THEN @Positive
ELSE @Invalid
END AS Result
FROM YourTableName AS t; -- ใช้ ALIAS ชื่อตารางเป็น t
```
---
### หมายเหตุ:
- **`DECLARE`** ใช้ได้ใน Stored Procedures, Functions, หรือ Scripts ของ SQL Server แต่ไม่สามารถใช้ใน View ได้
- **`ALIAS`** ใช้ได้ทุกที่ใน Query เพื่อตั้งชื่อคอลัมน์หรือตารางให้สั้นและสื่อความหมาย
- การใช้ตัวแปรจะช่วยให้โค้ด **ปรับเปลี่ยนได้ง่าย** และ **ลดความซ้ำซ้อน** ของเงื่อนไข!
To embed this project on your website, copy the following code and paste it into your website's HTML: